69,369
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int m_sum(int x)
{
int t = 0;
while(x){
t += x % 10;
x /= 10;
}
return t;
}
int m_cnt_9(int x)
{
int cnt=0;
while (x){
if((x%10) == 9) cnt++;
x /= 10;
}
return cnt;
}
int m_fi(int x)//有几个9:
{
int i;
int t = 0;
for(i = 1; i < x ;i++){
t += m_cnt_9(i);
}
return t;
}
int m_pow(int x)
{
x = x * x * x;
return x;
}
int m_narcissistic(int y)//水仙花数:(153=1*1*1+5*5*5+3*3*3)
{
int b = y, t = 0;
while(y){
t += m_pow(y % 10);
y /= 10;
}
if(t == b){
return 1;
}else{
return 0;
}
}
int main()
{
int i,x=1000,y=123;
printf("%d\n",m_sum(y));//位数和
printf("%d\n",m_fi(x)); //1-1000间9的个数
for(i = 100; i < 1000; i++){ //水仙花数
if (m_narcissistic(i) == 1){
printf("%d ", i);
}
}
printf("\n");
return 0;
}