2.2.1生成数 自数
生活随笔
收集整理的這篇文章主要介紹了
2.2.1生成数 自数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>
#define N 10000
unsigned g[N];
unsigned sum_of_digits(unsigned n)//用遞歸函數方法對n的每位數字進行相加
{if(n<10)return n;return (n%10)+sum_of_digits(n/10);
}
void generate_sequence(unsigned n)
{while(n<N){unsigned next=n+sum_of_digits(n);//此時n就是next的生成數if(g[next]>N||g[next]!=next)//g[next]!=next成立說明next不是自數,則返回return ;g[next]=n;//用于main函數中g[n]==n語句的判斷n=next;//繼續進行while循環,判斷next是否為自數}
}
int main()
{unsigned n;for(n=1;n<N;++n)g[n]=n;for(n=1;n<N;++n)generate_sequence(n);for(n=1;n<N;++n)if(g[n]==n)printf("%u\n",n);
}
總結
以上是生活随笔為你收集整理的2.2.1生成数 自数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.1.1 Speed Limit
- 下一篇: 2.3.1 Bee