본문 바로가기

프로그래밍/시스템

[C-알고리즘] 수열 문제

반응형

 

 

 

> 수열문제1번

1 + 2 + 4 + 7 + 11 + 16 + 22 ... 수열의 20번째 항까지의 합계를 구하시오.

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main(void)
{
    int num = , p = ,sum = 1;
    
        
    do{
        
    sum += (p += ++num); // 한줄 코드 
    
    /*    
    ↓ 위의 한줄 코드를 풀어쓴 코드 ↓ 
        num++;
        p += num;
        sum += p;
        
    */
    
    }while(num < 19);
    
    
    printf("%d\n",sum);
}
cs

 

<연산과정> 

 

sum [3-- = + 1
 sum [7-- = + 2
 sum [14-- = + 3
 sum [25-- 11 = + 4
 sum [41-- 16 = 11 + 5
 sum [63-- 22 = 16 + 6
 sum [92-- 29 = 22 + 7
 sum [129-- 37 = 29 + 8
 sum [175-- 46 = 37 + 9
 sum [231-- 56 = 46 + 10
 sum [298-- 67 = 56 + 11
 sum [377-- 79 = 67 + 12
 sum [469-- 92 = 79 + 13
 sum [575-- 106 = 92 + 14
 sum [696-- 121 = 106 + 15
 sum [833-- 137 = 121 + 16
 sum [987-- 154 = 137 + 17
 sum [1159-- 172 = 154 + 18
 sum [1350-- 191 = 172 + 19

 

<결과값>

1350

 

 

 


 

 

 

> 수열문제2번

 ( 1*100 ) + ( 2*99 ) ... ( 100*1 ) + ( 99*2 ) + ... 의 

합계를 구하시오.

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main(void)
{
    int op1 = , op2 = , sum = 0;
    
        
    do{
    op1++;
    op2 = 101 - op1;
    sum += op1 * op2;
    
    }while(op1 < 100);
    
    
    printf("%d\n",sum);
}
cs

 

 

 

 


 

 

> 수열문제3번

(-1) x 2 x (-3) x 4 x (-5) x ... x 100  + ... 의 합계를 구하시오.

 

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
    int num = 0;
    double r;
        
    do{
    
    num++;    
    
    if ( num % == ) r*=num; // 짝수 일 때 양의 곱 
    else r *= num * -1// r = r * (num*(-1)) - 동일한 문장 
    
    }while(num < 100);
    
 
    printf("%6.4e\n",r); 
// 소수점 이상 6자리 , 소수점 이하 4자리를 잡아 출력한다. 
}
cs

 

 

 

 


 

 

수열문제4

의 합계를 구하시오.

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main(void)
{
    double num = 0., sum = 0.0;
    
        
    do{
        
    num++;
    
    if ( (int)num % == ) sum += num / (num+1);
    else sum-= num / (num+1);
    
    }while(num < 99);
    
    
    printf("%f\n",sum);
}
cs

 

 

 

 

 


 

 

> 수열문제5번

1! + 2! + 3! + 4! + 5! + ... 10! 의 합계를 구하시오. 

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
 
int main(void)
{
    int num = , seq = , sum = 1;
        
    do{
         num++;
         seq *= num;             
         sum += seq;
                        
      }while(num < 10);
    printf("%d\n",sum);
}
cs

 

 

<연산과정>

seq(2= num(2* seq(1)
seq(6= num(3* seq(2)
seq(24= num(4* seq(6)
seq(120= num(5* seq(24)
seq(720= num(6* seq(120)
seq(5040= num(7* seq(720)
seq(40320= num(8* seq(5040)
seq(362880= num(9* seq(40320)
seq(3628800= num(10* seq(362880)

 

 

<결과값>

4037913

 

 

 


 

 

 

> 수열 마지막문제

(1 + 1 + 2 + 3 + 5 + 8 + 13 + ...)순서로 나열되는 

피보차니수열의 20번째 항까지의 합계를 구하시오. 

 

※ 피보나치수열 첫 번째 항과 두 번째 항을 더해서 세 번째 항을 만들고, 
두 번째 항과 세 번째 항을 더해서 네 번째 항을 만드는 방법으로, 
계속해서 다음 항을 만들어가는 수열이다.

 

더보기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main(void)
{
    int A = 0, B = , C , SUM = 1
    int count = 1;
        
    do{
    
     C = A+B;
     SUM+=C;
     A = B;
     B = C; 
     
    count++;
    printf("%d\n",C);
    }while(count < 20);
    
    
     printf("%d\n",SUM);
}
cs

 

 

<연산과정>

A(0+ B(1= C[1]----> SUM{2}
A(1+ B(1= C[2]----> SUM{4}
A(1+ B(2= C[3]----> SUM{7}
A(2+ B(3= C[5]----> SUM{12}
A(3+ B(5= C[8]----> SUM{20}
A(5+ B(8= C[13]----> SUM{33}
A(8+ B(13= C[21]----> SUM{54}
A(13+ B(21= C[34]----> SUM{88}
A(21+ B(34= C[55]----> SUM{143}
A(34+ B(55= C[89]----> SUM{232}
A(55+ B(89= C[144]----> SUM{376}
A(89+ B(144= C[233]----> SUM{609}
A(144+ B(233= C[377]----> SUM{986}
A(233+ B(377= C[610]----> SUM{1596}
A(377+ B(610= C[987]----> SUM{2583}
A(610+ B(987= C[1597]----> SUM{4180}
A(987+ B(1597= C[2584]----> SUM{6764}
A(1597+ B(2584= C[4181]----> SUM{10945}
A(2584+ B(4181= C[6765]----> SUM{17710}

 

<결과값>

17710

 

반응형