算法竞赛入门经典(第2版)2.5注解与习题

来源:互联网 发布:知远防务网站 编辑:程序博客网 时间:2024/05/18 17:44

习题2-1 水鲜花数

输出100~999中的所有水仙花数。若3位数ABC满足 ABC=A*3 + B*3 +C*3,则称其为水鲜花数。例如 153 = 1^3 +5^3 +3^3,所以153是水仙花数。

        代码实现:

# include <stdio.h>int main(void){for (int i=100;i<=999;i++){        int ge;int shi;int bai;ge = i / 100;shi = i % 100 / 10;bai = i % 100 % 10;if (i == ge*ge*ge + shi*shi*shi + bai*bai*bai)printf(" %d",i);}return 0;}
习题2-3 倒三角

输入正整数n<=20,输出一个n层的倒三角形。例如,n=5时输出如下:

代码实现:

#include <stdio.h>int main() {int i,j,k,n;scanf("%d",&n);if(n>0&&n<=20){  for(i = n;i > 0;i--) // n为组成三角形的行数  { for(k = 0;k < n - i;k++) // 打印前导空格,空格数分别为0,1,2,3,......{ printf(" ");}for(j = 0;j <2 * i - 1;j++) // 因为i = n,n - 1,n - 2,... 2,1,0,故打印*数也是这么多。{ printf("*");}printf("\n");  }   }return 0;}

小结:

1.自己能够写出规律,但是刚刚一开始写的程序有错误,只是想到了空格 和 * 号,但是却把他们放在一个for里实现;导致出错;

2.自己能够分清是用两个for循环,一个控制行数,一个控制每行的符号输出打印

3.在控制输出是用for来控制的,而不是在printf里就能实现!!起初是这样写的:printf(“#”,2*i-1)//这样写就gg了,题目算是比较简单的,自己做得题目太少了,还得多练啊!!

          

0 0
原创粉丝点击