변경이력

돌아가기
2 23개 문자 추가

2017/01/05 14:41

김종현

```{.cpp} #include <stdio.h> int Number (int n, int *cnt); int Generator (int n); int main(void) { int n=0,i,dn=0; int arr[5001] = {0}; int sum=0; for(n=0 ; dn<=5000 ; n++) { dn = Generator(n); arr[dn] = 1; } for(n=0;n<=5000;n++) { if(arr[n] == 0) sum+=n; } printf("셀프넘버들의 합은 %d",sum); //정답 : 1227365 출력 return 0; } int Generator (int n) { int dn = 0,num; int i,cnt=0; int ten=1; num = Number(n,&cnt); while(num>=0) { for(i=1;i<num;i++) ten*=10; dn += (n/ten) % 10; num--; ten=1; if(num ==0) { dn += n; break; } } return dn; } int Number (int n, int *cnt) { int number; number = n/10; if(number == 0){ *cnt+=1; return *cnt; } else{ *cnt+=1; Number(number,cnt); } } ``` c언어로 작성해봤습니다. 어렵네요
```{.cpp} #include <stdio.h> int Number (int n, int *cnt); int Generator (int n); int main(void) { int n=0,i,dn=0; int arr[5001] = {0}; int sum=0; for(n=0 ; dn<=5000 ; n++) { dn = Generator(n); arr[dn] = 1; } for(n=0;n<=5000;n++) { if(arr[n] == 0) sum+=n; } printf("셀프넘버들의 합은 %d",sum); //정답 : 1227365 출력 return 0; } int Generator (int n) { int dn = 0,num; int i,cnt=0; int ten=1; num = Number(n,&cnt); while(num>=0) { for(i=1;i<num;i++) ten*=10; dn += (n/ten) % 10; num--; ten=1; if(num ==0) { dn += n; break; } } return dn; } int Number (int n, int *cnt) { int number; number = n/10; if(number == 0){ *cnt+=1; return *cnt; } else{ *cnt+=1; Number(number,cnt); } } ``` c언어로 작성해봤습니다. 어렵네요
1 Original

2017/01/05 14:40

김종현

코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.