水仙花数的怎么去求
首先要去了解水仙花数的定义,即:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
了解到这之后我们就可以引出n位数的思路(这个基础的应该都是知道的),定义一个函数来求这个数是几位数。
然后我们需要一个引入一个数学头文件并用里面的pow()函数,来求相应位置的n次幂。(如果不用的话也可以用一个循环来代替此步骤)
#include<stdio.h>
#include<math.h>
int solve(int x)//用来求出几位数
{
int i=0;
while(x>0)
{
x/=10;
i++;
}
return i;
}
int main()
{
int a,b,i,x,n;
for(i=100;i<=10000000;i++)//从三位数开始遍历
{ a=i;//用于代替i进行求值,i要用于判断
x=0;//将x归零因为后面要求累加
n=solve(a);//获取位数的值赋给n
while(a>0)//这个循环用于求各位数n次幂的和
{
x+=pow(a%10,n);
a/=10;
}
if(x==i)//判断是否为水仙花数
printf("%d\n",x);
}
}
作者是c语言新手(刚学一个月c语言),就仅仅提供一些参考思路。