“”水仙花数“”
【问题描述】寻找“水仙花数”。“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。现要求编程打印出所有的“水仙花数”,每行输出2个水仙花数,用空格隔开。如153=13+33+53,那么153就是一个水仙花数。【输入形式】无输入
【输出形式】每行2个水仙花数,以空格隔开 C 还是 C++ ? 网上很多例程随便一搜就有,先动动手再问啊 本帖最后由 jackz007 于 2021-10-27 17:32 编辑
#include <stdio.h>
int main(void)
{
int c , d , k , s ;
for(c = 0 , d = 100 ; d < 1000 ; d ++) {
for(s = 0 , k = d ; k ; k /= 10) s += (k % 10) * (k % 10) * (k % 10) ;
if(s == d) {
if(c && ! (c % 2)) printf("\n") ;
if(c % 2) printf(" ") ;
printf("%3d" , d) ;
c ++ ;
}
}
printf("\n") ;
}
编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
153 370
371 407
D:\0002.Exercise\C> #include <math.h>
bool isNarcissistic(int num){
int a = pow((num/100), 3);
int b = pow(((num%100)/10), 3);
int c = pow((num%10), 3);
return a+b+c == num;
}
int main()
{
int arr = {0}, a = 0;
for(int i = 100; i <= 999; i++){
if(isNarcissistic(i)){
arr = i;
}
}
for(int i = 0; arr; i += 3){
for(int j = i; j < i+3 && arr; j ++){
printf("%d ", arr);
}
printf("\n");
}
return 0;
}153 370 371
407
页:
[1]