一、水仙花数:一个三位数,它的各位数字的立方和 等于这个数本身。
eg:153 = 1^3 + 5^3 + 3^3
1、穷举法:
#include<stdio.h>
#include<math.h> // pow(x,3)
int main(){
int i,a,b,c,t;
for(i=100;i<=999;i++){
a = i/100; //百位
c = i%10; //个位
b = (i-a*100)/10; //十位
t = a*a*a+b*b*b+c*c*c;
if(i==t){
printf("%5d",i);
}
}
}
二、输入 1~9之间任一个数d 和正整数n,求 Sn = d + dd + ddd + dddd+……+n个d
#include<stdio.h>
int main(){
long d,n,s=0,x;
printf("set d,n : ");
scanf("%ld,%ld",&d,&n);
x = d;
while(n>0){
s += x;
x = x*10+d;
n--;
}
printf("sum: %d",s);
}
三、 数字分离
分离实数654.321的各位数字 (方法待改善······)
#include<stdio.h>
int main(){
int a,b,c,d,e,f;
double n = 654.321,t;
a = (int)n/100;
b = ((int)n-a*100)/10;
c = (int)n-a*100-b*10;
t = n-a*100-b*10-c; //小数部分
t*=1000;
d = t/100;
e = (t-d*100)/10;
f = t-d*100-e*10;
printf("百位:%d\n",a);
printf("十位:%d\n",b);
printf("个位:%d\n",c);
printf("-1位:%d\n",d);
printf("-2位:%d\n",e);
printf("-3位:%d\n",f);
}