算法竞赛入门经典(第二版)第二章循环结构程序设计注解与习题上

习题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");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43233736/article/details/83039844