前面我们学习了do while循环,今天做一个练习:水仙花
题目:一个三位数(100-999),获取其中所有各个位数的相加等于这个数本身 的数
尽量自己先写一写,差不多了再看答案
思路:
- 先获取个位数的值
- 获取十位数的值
- 获取百位数的值
- 三者相加 进行判断
- 返回结果
代码:
int main() {int i = 100;do {//个位数int a = i % 10;//十位int b = i / 10 % 10;//百位int c = i / 100;if (a*a*a+b*b*b+c*c*c==i) {printf("%d\n", i);}i++;} while (i<=999);return 0;
}
结果:
拓展:
我们写立方要a*a*a,这样太繁琐,
求次方我们可以用一个方法
pow()方法
- 前置:需要math.h库
- 写法:pow(a,b):a=底数,b=次方
下面演示pow方法的代码,用上述代码举例:
if (pow(a,3)+pow(b,3)+pow(c,3)==i) {printf("%d\n",i);
}