黑马程序员技术交流社区
标题: 1111-练习-打印水仙花数 [打印本页]
作者: donkey2 时间: 2014-11-11 14:27
标题: 1111-练习-打印水仙花数
本帖最后由 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”,怎么改呢?
思考一下!
作者: donkey2 时间: 2014-11-11 14:44
1. continue 要不要都无所谓了。2. 题目要求还要统计个数,所以需要加一个计数器。
3. 针对每次都打印出“水仙花数为”的问题。
额。。先写成,“找到一个水仙花数为 5%”, 不要鄙视我。
作者: donkey2 时间: 2014-11-11 14:58
说起来真是又很多回忆吧,趁着自己还算年轻,多学点东西吧。别留下遗憾,带着伤感来回忆这一切。
作者: 爱学习的小明 时间: 2014-11-11 19:13
class shuixianhuashu
{
public static void main(String[] args)
{
int count = 0;
for (int x=1;x>=1 && x<=9 ;x++ )
{
for (int y=0;y>=0 && y<=9; y++ )
{
for(int z=0;z>=0 && z<=9; z++ )
{
if (x*100+y*10+z==x*x*x+y*y*y+z*z*z)
{
System.out.println(x*100+y*10+z);
count++;
}
}
}
}
System.out.println("水仙花个数="+"count");
}
}
我写的代码,怎么看不懂楼主的,NSLog是什么,初学者请指教
作者: shenlongfuhuo 时间: 2014-11-11 19:37
写的好,值得学习
作者: donkey2 时间: 2014-11-11 23:38
我也是初学者,相互学习哈。
NSLog 是Objective-c语言里的printf函数,区别自带换行,
而且有一些附加信息,例如 2014-11-11 14:23:41.684 练习-3
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |