1.求Sn = a + aa + aaa + aaaa + aaaaa的前n项之和,其中a是一个数字,例如:2 + 22 + 222 + 2222 + 22222。
int main()
{
int a = 0;
int n = 0;
scanf("%d%d", &a, &n);
int sum = 0;
int i = 0;
int ret = 0;
for (i = 0; i < n; i++)
{
//ret保留上一次的结果
ret = ret * 10 + a;
sum += ret;
}
printf("%d\n", sum);
system("pause");
return 0;
}
2.1.在屏幕上输出以下图案:
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
//宏定义行数的2倍,可以不把代码写死,随时可以更改
#define Row 50
int main()
{
int i = 1;
//循环Row/2行
while (i < Row)
{
int j = 0;
int z = 0;
//前面一半加上中间一行数
if (i <= Row / 2)
{
//使其*对其中央
for (z = 0; z < ((Row / 2) - i) / 2; z++)
{
printf(" ");
}
//输出*
for (j = 0; j < i; j++)
{
printf("*");
}
printf("\n");
i += 2;
}
//后面一半行数
else
{
//使其*对其中央
for (z = 0; z<(i - (Row / 2))/2;z++)
{
printf(" ");
}
//输出*
for (j = Row; j>i; j--)
{
printf("*");
}
printf("\n");
//每次跨步为二,与我们内部循环呈现差值,从而实现增加一行多2个*或少两个*
i += 2;
}
}
system("pause");
return 0;
}
3.输出所有水仙花数
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。
407 = 4^3 + 0^3 + 7^3。
int main()
{
int i = 0;
for (i = 100; i < 1000; i++)
{
//xyz分别是百位十位个位
int x = 0, y = 0, z = 0;
x = i / 100;
y = i / 10 % 10;
z = i % 10;
if (((z*z*z) + (y*y*y) + (x*x*x)) == i)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}