今日题目
1.在屏幕上打印一个半菱形,要求每行的元素个数为1,3,5,7,9,11,9,7,5,3,1。
2.求出0~999之间的所有“水仙花数”并输出。
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身
例如:153=1+5+3?,则153是一个“水仙花数”。
3. 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
1.在屏幕上打印一个半菱形,要求每行的元素个数为1,3,5,7,9,11,9,7,5,3,1。
由题目可以知道,每一行的元素个数sum与行数n的关系是sum=2n-1,我们可以把菱形分为上下两个部分分别来打印
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int i = 0;
int j = 0;
int n = 0;
printf("输入想打印行数: ");
scanf("%d",&n);
//打印上半部分
for (i = 1; i < 2*n-1; i += 2){ //确定每行的元素个数
for (j = 1; j <= i; j++){ //打印*号
printf("*");
}
printf("\n");
}
//打印下半部分
for (i = 2 * n - 1; i > 0; i -= 2){
for (j = 1; j <=i; j++){
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
运行结果:
2.求出0~999之间的所有“水仙花数”并输出。
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数
#include<stdio.h>
#include<stdlib.h>
int main() {
int i ,a ,b ,c ;
for (i = 0; i < 1000; i++) {
a = i / 100; //取百位数数字
b = i / 10 % 10; //取十位数数字
c = i % 10; //取个位数数字
if (i == a*a*a + b*b*b + c*c*c) {
printf("%d ", i);
}
}
system("pause");
return 0;
}
运行结果:
3. 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int n = 0;
int i = 0;
int sum = 0;
int Sn = 0;
printf("请输入一个0-9的数: "); //从键盘输入一个数字
scanf("%d", &n);
if (n >= 0 && n <= 9) { //输入的数字必须在0-9之间
for (i = 0; i < 5; i++) {
sum = n + sum * 10;
Sn = Sn + sum ;
}
printf("Sn=%d\n", Sn);
}
else{
printf("请重新输入\n");
}
system("pause");
return 0;
}
运行结果: