1.求1-100000之间的水仙花数
#include<math.h>
int main()
{
int i = 0;
for (i = 0; i <= 100000; i++)
{
int sum = 0;
int count = 1;
//判断i是非为水仙花数
//1.计算i的位数
int tmp = i;
while (tmp/=10)
{
count++;
}
//2.得到i的每一位,计算每一位的位数次方和
tmp = i;
while (tmp)
{
sum+=pow(tmp % 10, count);
tmp /= 10;
}
//3.判断
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
2.打印菱形
int main()
{
int line = 0;
scanf("%d", &line);
//打印上部分
int i = 0;
for (i = 0; i < line; i++)
{
//打印一行
//先打印空格
int j = 0;
for (j = 0; j < line - 1 - i; j++)
{
printf(" ");
}
//打印
for (j = 0; j <2*i+1; j++)
{
printf("*");
}
printf("\n");
}
//打印下部分
for (i = 0; i < line-1; i++)
{
//打印一行
int j = 0;
//先打印空格
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (j = 0; j < 2 * (line - 1-i)-1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
3.计算求和
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
int main()
{
int a = 0;
int n = 0;
int i = 0;
int ret = 0;
int sum = 0;
scanf("%d %d", &a, &n);
for (i = 0; i < n; i++)
{
ret=ret*10 + a;
sum += ret;
}
printf("%d\n", sum);
return 0;
}