1、水仙花数(Narcissistic number)又被称为阿姆斯特朗数(Armstrong number)。水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
输出100-999数字的所有水仙花数。
代码如下:
#include <stdio.h>
int main()
{int i, j, k, n;printf("输出100--999所有的水仙花数:\n");for (n = 100; n <= 999; n++){i = n / 100; /*百位*/j = n / 10 % 10; /*十位*/k = n % 10; /*个位*/if (n == (i * i * i + j * j * j + k * k * k))printf("%d ", n);}printf("\n");return 0;
}
结果:
输出100--999所有的水仙花数:
153 370 371 407
请按任意键继续. . .
2、 有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?
代码如下:
#include"stdio.h"
main(){int i,j,k,n=0;printf("\n");for(i=1;i<5;i++){for(j=1;j<5;j++){for(k=1;k<5;k++){if(i!=k&&i!=j&&k!=j){printf("%d%d%d\n",i,j,k);n++; }}}}printf("共有%d个互不相同的无重复数字的三位数\n",n);return 0;
}
结果:
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
共有24个互不相同的无重复数字的三位数
请按任意键继续. . .
3、猴子吃桃问题:猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个; 第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共吃了多少个桃子?
代码如下:
#include <stdio.h>
int main()
{int day = 9;int x1, x2; /* x1表示前一天,x2表示后一天 */x2 = 1; /* 第10天,剩一个 */while(day>0) {x1 = (x2 + 1) * 2;x2 = x1;day--;}printf("猴子第一天共摘下%d个桃子\n", x1);return 0;
}
结果:
猴子第一天共摘下1534个桃子
请按任意键继续. . .
4、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
代码如下:
#include <stdio.h>
int main()
{int n, i;printf("请输入一个数字:\n");scanf("%d", &n);printf("%d=", n);for (i = 2; i <= n; i++)//1既不是质数也不是合数{while (n != i){if (n%i == 0){printf("%d*", i);n = n / i;}elsebreak;}}printf("%d\n", n);return 0;
}
结果:
请输入一个数字:
90
90=2*3*3*5
请按任意键继续. . .
5、输入某年某月某日,判断这一天是这一年的第几天?
代码如下:
#include"stdio.h"
int main(){int day,month,year,sum=0,day1=0;printf("请输入年月日\n");scanf("%d %d %d",&year,&month,&day);switch(month){case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break; default:printf("error\n");}sum=sum+day;if(year%400==0||(year%4==0&&year%100!=0))day1=1;if(month>2&&day1=1) //若是闰年且月份大于2月份加一天sum=sum+day1;printf("是%d年的第%d天\n",year,sum);return 0;
}
结果为:
请输入年月日
2024 3 1
是2024年的第61天
请按任意键继续. . .