首页 > 技术文章 > 《算法竞赛入门经典》第2章 循环结构程序设计

rezone 2013-07-22 21:03 原文

提示2-3 编写程序时,要特别留意“当前行”的跳转和变量的改变。

例题2-1 aabb

输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。

方法1:

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int a, b, n;
 7     double m;
 8 
 9     for (a = 1; a <= 9; a++)
10         for (b = 0; b <= 9; b++)
11     {
12         n = a * 1100 + b * 11;
13         m = sqrt(n);
14         if (floor(m + 0.5) == m)
15             printf("%d\n", n);
16     }
17 
18     return 0;
19 }

方法2:

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int x, n, high, low;
 6 
 7     for (x = 1; ; x++)
 8     {
 9         n = x * x;
10         if (n < 1000) continue;
11         if (n > 9999) break;
12         high = n / 100;
13         low  = n % 100;
14         if (high/10 == high%10 && low/10 == low%10)
15             printf("%d\n", n);
16     }
17 
18     return 0;
19 }

 

提示2-13: 可以使用time.h和clock()函数获得程序运行时间。常数CLOCKS_PER_SEC和操作系统相关,请不要直接使用clock()的返回值,而应总是除以CLOCKS_PER_SEC。 

scanf函数也有返回值,它返回的是成功输入的变量的个数;当输入结束时,scanf无法再次读取则返回0。

提示2-15:在Windows下,输入完毕后先按Enter键,再按CTRL+Z键,最后再按Enter键,即可结束输入。在Linux下,输入完毕后按CTRL+D键即可结束输入。

提示2-16:变量在未赋值之前的值是不确定的。特别地,它不一定等于0。

 

 

 

推荐阅读