以前在学校学C的时候,不知道是自己的原因,还是老师的原因,总觉得取一个数的个、十、百、千位数等好麻烦,今日小小一测试,发现并不难,而且很有规律。
如一个3位数,我怎么得到呢,请看以下代码:
#include <iostream>
#include<cmath>
using namespace std;
int main(void)
{
int a,b,c,d;
for(d=100; d<1000;d++)
{
a= d/100;
b= d/10%10;
c=d%10;
if(a*a*a+b*b*b+c*c*c==d)
cout << d << endl;
}
system("pause");
return 0;
}
此代码的意思是得到一个水仙花数,所谓的水仙花数是指3位数,其各位数立方和之和等于该数。
以上可以看出,取最高位只要除以100,取十位只要除以10再取10的余,个位永远都是取10 的余。所以,以此类推,如果是一个四位数,那么取每位数就是:
a= d/1000;
b= d/100%10;
c=d/10%10;
e=d%10;</span>
再者,你也可以随便取一个数,看看是不是这样算能得到正确的结果,我自己试验过了,这样完全正确。现在发现,真的不是老师的原因,是自己的原因,自己没有去发掘探索。