演算法競賽入門經典(第二版)第二章迴圈結構程式設計註解與習題上
阿新 • • 發佈:2018-11-04
習題2-1水仙花數
輸出100-999中的所有水仙花數。若三位數ABC滿足ABC=A^3+ B^3+ C^3,則稱其為水仙花數。例如153= 1^3+ 5^3+ 3^3,所以153是水仙花數
#include<stdio.h>
int main()
{
int i;
for(i=100;i<=999;i++)
{
int b=i%10;//個位數
int c=i%100/10;//百位數
int d=i/100;//千位數
if(i==b*b*b+c*c*c+d*d*d)
printf ("%d\n",i);
else continue;
}
}
習題2-2 韓信點兵
#include<stdio.h>
int main()
{
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
int d=0;
for(int i=10;i<=100;i++)
{
if(i%3==a&&i%5==b&&i%7==c)//取餘和列舉的思想
{
printf("%d\n",i);
d=1;
}
}
if(d==0)
printf("No answer!\n");
}
}
習題2-3倒三角形
輸入正整數n<=20,輸出一個n層的倒三角形。
本題思路在於找尋空格與#的位置規律然後用迴圈來表示
int main()
{
int n,d,e;
while(scanf("%d",&n)!=EOF&&n<=20)
{
for(int i=n;i>=1;i--)
{
d=n-i;
e=2*i-1;
for(int j=0;j<d;j++) printf(" ");
for(int k=0;k<e;k++) printf("#");
printf("\n");
}
}
}