반응형
> 수열문제1번
1 + 2 + 4 + 7 + 11 + 16 + 22 ... 수열의 20번째 항까지의 합계를 구하시오.
더보기
123456789101112131415161718192021222324 #include <stdio.h>int main(void){int num = 0 , p = 1 ,sum = 1;do{sum += (p += ++num); // 한줄 코드/*↓ 위의 한줄 코드를 풀어쓴 코드 ↓num++;p += num;sum += p;*/}while(num < 19);printf("%d\n",sum);}cs
<연산과정>
sum [3] -- 2 = 1 + 1sum [7] -- 4 = 2 + 2sum [14] -- 7 = 4 + 3sum [25] -- 11 = 7 + 4sum [41] -- 16 = 11 + 5sum [63] -- 22 = 16 + 6sum [92] -- 29 = 22 + 7sum [129] -- 37 = 29 + 8sum [175] -- 46 = 37 + 9sum [231] -- 56 = 46 + 10sum [298] -- 67 = 56 + 11sum [377] -- 79 = 67 + 12sum [469] -- 92 = 79 + 13sum [575] -- 106 = 92 + 14sum [696] -- 121 = 106 + 15sum [833] -- 137 = 121 + 16sum [987] -- 154 = 137 + 17sum [1159] -- 172 = 154 + 18sum [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 = 0 , op2 = 0 , 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 % 2 == 0 ) 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.0 , sum = 0.0;
do{
num++;
if ( (int)num % 2 == 0 ) sum += num / (num+1);
else sum-= num / (num+1);
}while(num < 99);
printf("%f\n",sum);
}
|
cs |
> 수열문제5번
1! + 2! + 3! + 4! + 5! + ... 10! 의 합계를 구하시오.
더보기
123456789101112131415 #include <stdio.h>int main(void){int num = 1 , seq = 1 , 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번째 항까지의 합계를 구하시오.
※ 피보나치수열은 첫 번째 항과 두 번째 항을 더해서 세 번째 항을 만들고,
두 번째 항과 세 번째 항을 더해서 네 번째 항을 만드는 방법으로,
계속해서 다음 항을 만들어가는 수열이다.
더보기
1234567891011121314151617181920 #include <stdio.h>int main(void){int A = 0, B = 1 , 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
반응형
'프로그래밍 > 시스템' 카테고리의 다른 글
[C] atoi - itoa (문자열을 정수로 , 정수를 문자열로 변환) (0) | 2017.07.05 |
---|---|
[C-알고리즘] 석차구하기 (0) | 2017.06.27 |
[C-알고리즘] 버블정렬,선택정렬,삽입정렬 (0) | 2017.06.25 |
[C-알고리즘] 유클리드 호제법 (0) | 2017.06.16 |
[java] 채팅 (0) | 2017.06.07 |