题目
打印所有的"水仙花数"(它是一个三位数,其各位数字立方等于该数本身).
这是个C++程序题,望高手能把它的步骤和设计思想写下来好吗?
谢谢
參考答案:如果我我就用穷举法
个位的取得方法是让这个数余10,得余数,
十位的取得方法是让这个数余100,再除10取得数,
百位的直接除以100,得取得的数。
我现在的电脑没有编译器没有MSDN,试着做一下,错误肯定多多。
int a,b,c;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i%100)/10;
c=(i%100)%10;
if(i==(a*a*a)+(b*b*b)+(c*c*c)) cout<<i<<\n;
}
-------
呵呵,鬼兄,这回你成我楼上的了。我怎么觉得效率上我的应该算好的呢:)因为我的嵌套少,还没有函数调用啊,至于算法上,你的也是每次组一次,我的也是拆一次,应该差不多啦!如果要是追求效率,你的那个应该把函数去掉,要不频频调用,反回,不如直接a*a*a来得直接高效。