1. 程式人生 > >演算法競賽入門經典(第二版)第二章迴圈結構程式設計註解與習題上

演算法競賽入門經典(第二版)第二章迴圈結構程式設計註解與習題上

習題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"); } } }