<谭> 6.6打印出所有的"水仙花数", 所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如, 153就是一水仙花数,因为153 = 13+53+33 。#include <stdio.h>int main(){ int i, j, k; /* 分别表示百位,十位,个位 */ int n; for (n = 100; n < 1000; n++) { i = n / 100; j = n / 10 - i * 10; k = n - i * 100 - j * 10; if (i*i*i + j*j*j + k*k*k == n) printf("%d ", n); } return 0;} 运行结果:======================153 370 371 407 ======================######################################改进########################################经网友指点,查了一下math.h中的pow函数double pow(double a, double b) 即求 a 的 b 次方修改如下:#include <stdio.h>#include <math.h>int main(){ int i, j, k; int n; for (n = 100; n < 1000; n++) { i = n / 100; j = n / 10 - i * 10; k = n - i * 100 - j * 10; if (pow(i, 3) + pow(j, 3) + pow(k, 3) == n) printf("%d ", n); } return 0;} 运行结果:======================153 370 371 407 ======================

评论