练习题
水仙花数
题目 水仙花数
输出100-999中的所有水仙花数。若3位数ABC满足 ABC=a3+b
3+c3,则称为水仙花数,例如153=1
3+53+3
3
int main(int argc, char *argv[]) {
int a=0,b=0,c=0;
int i=0;
for(i=100;i<=999;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i%10;
if((pow(a,3)+pow(b,3)+pow(c,3))==i)
{
printf("%d\n",i);
}
}
return 0;
}
韩信点兵
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只看一眼队伍的排尾就知道总人数了。输入3个非负整数a、b、c,表示每种队形排尾的人数(a<3、b<5、c<7),输出总人数的最小值或报告无解。
已知总人数不小于10,不超过100。
Input
输入非负整数a、b、c,用空格隔开
Output
输出总人数,为整数,用空格隔开;若无解输出-1
解题思路
韩信点兵: 每三人一列余一,每五人一列余二,每七人一列余四
代码
int main(int argc, char *argv[]) {
int a=0,b=0,c=0;
int i=10,j=0,k=0;
scanf("%d%d%d",&a,&b,&c);
while(i<100)
{
if((i%3==a)&&(i%5==b)&&(i%7==c))
{
printf("%d",i);
return 0;
}
i++;
}
print("-1");
return 0;
}
倒三角形
输入正整数n<=20,输出一个5层的倒三角。如:
*********
*******
*****
***
*
代码:
#include <stdio.h>
int main(){
for(int m=0;m<=4;m++){
for(int n=0;n<=m;n++){
printf(" ");
}
for(int a=0;a<2*a-m*2;a++){
printf("*");
}
printf("\n");
}
return 0;
}