本帖最后由 donkey2 于 2014-11-15 10:01 编辑
/* 编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙花数”是一个 各个位立方之和等于该整数的三位数。 */ // 根据题目的意思,应该是 abc = a^3 + b^3 + c^3 这样的一个三位整数。 #import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... // NSLog(@"Hello, World!"); int abc = 100; int a,b,c;
for (;abc < 1000 ; abc ++) { a = abc / 100; b = (abc - a * 100)/10; c = (abc - a * 100 - b * 10 ); if(abc == (a*a*a + b*b*b + c*c*c)){ NSLog(@"水仙花数为 %i",abc); continue;} } } return 0; }
遇到的问题:
1. 先前把 a = 。。。b=。。。 c=。。。写在了for循环的外面,导致b,c的值总是0,得不到想要的结果。
2. 指数函数pow(a,3), 可以用,不要用 a^3, 这个是位运算符,得到的不是想要的结果。
3. 打印的结果:
2014-11-11 14:23:41.684 练习-3[9473:303] 水仙花数为 153 2014-11-11 14:23:41.685 练习-3[9473:303] 水仙花数为 370 2014-11-11 14:23:41.685 练习-3[9473:303] 水仙花数为 371 2014-11-11 14:23:41.686 练习-3[9473:303] 水仙花数为 407
每一次都出现“水仙花数为”,不觉得很恶心么?
要改成“水仙花数为:153,370,371,407”,怎么改呢? 思考一下!
|