1.求出0~999999之间的所有“水仙花数”并输出。
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身。
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、
阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,
其各个数之N次方和等于该数。
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 1; i <= 999999; i++)
{
//1、求i为几位数
int tmp = i;
int count = 0;
int sum = 0;
while (tmp != 0)
{
count++;
tmp = tmp / 10;
}
tmp = i;
while (tmp != 0)
{
sum += pow((double)(tmp % 10), (double)count);
tmp = tmp / 10;
}
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
2.求Sn=a+aa+aaa+aaaa+aaaaa的前n项之和,其中a是一个数字。
#include<stdio.h>
int main()
{
int i = 0;
int a = 0;
int n = 0;
int sum = 0;
int tmp = 0;
scanf_s("%d %d",&a,&n);
for (i = 0; i < n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
printf("%d\n", sum);
return 0;
}