计算水仙花数
首先,我们需要弄清楚什么是水仙花。水仙花的数量也被称为超完整数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数。水仙花的数量是指一个数字,每个位置的N次幂之和等于它本身(例如,153是一个三位数,n==3,13+53+33=153)。
第一个文件需要的是:
#pragma warning(disable:4996)
#include<stdio.h>
#include<math.h>//po的头文件
首先要算出这是几位数,,我们用自定义函数jisuan来写,下面是代码实现:
返回值是w。
然后下面就是main函数了:
登录后复制
int main()
{
int w = 0;//计算几位数
int i = 0;
int q = 0;
int z = 0;
int c = 0;
int f = 0;
for (i = 0; i <= 100000; i++)
{
w = jisuan(i);//自定义函数求i是几位数
f = i;//f顶替i进行计算,因为i要++
c = 0;//因为每次计算c都要从0开始算
for (q = 0; q < w; q++)//计算每一位的w次方之和
{
z = f % 10;//提取出每一位数字
f = f / 10;
c = c + pow(z, w);//pow是计算次方的,这里是计算z的w次方
}
if (i == c)
{
printf("%d ", i);
}
}
return 0;
}
https://blog.51cto.com/u_15880518/6103049
int jisuan(int n)
{
int w = 0;
if (n == 0)
{
w++;
}
while (n >= 1)
{
n = n / 10;
w++;
}
return w;
}