看了下时间,是深夜了,我并不想熬夜,我知道熬夜对身体不好,不过经常熬夜的我已经习惯了,反而在这白天很热的夏天容易犯困,觉得晚上效率要高.
不过还是得把作息调整过来,现在是1点,以后这种博客我会提前一点.
好,进入正题吧!今天的一节是6题算法练习,我没找到到答案,书中作者也没给答案,应该是认为简单吧,可对我来说还是有难度的.
目前勉强就做出4题来了.
第一题是水仙花数(daffodil)问题,这个比较简单,主要用拆分个,十,百就好了,看代码
#include//水仙花数问题 2017-8-15 int main(int argc, char* argv[]) { int a = 0, b = 0, c = 0; for(int i = 100; i < 1000; i++) { a = i / 100; b = i % 100 / 10; c = i % 100 % 10; if (i == (a*a*a + b*b*b + c*c*c)) printf("%d\n", i); } return 0; }
运行结果:
第二个练习,是韩信点兵(hanxin)问题,看代码
#include//韩信点兵 2017-8-15 int main(int argc, char* argv[]) { int a, b, c; int n = 0; while (scanf("%d %d %d", &a, &b, &c) == 3 && a > 0 && a < 3 && b > 0&& b < 5 &&c > 0 && c < 7) { int ans = 0; for(int p_i = 10; p_i <= 100; p_i++) { if (p_i % 3 == a && p_i % 5 == b && p_i % 7 == c){ ans = p_i; break; } } n++; if (ans != 0) printf("Case %d: %d\n", n, ans); else printf("Case %d: No answer\n", n); } return 0; }
运行结果:
第三题是倒三角形问题(triangle),这种输出题目是找规律,把它看做两部分,一部分是输出空格,另一部分是输出字符,这样就好办了,看代码
#include//倒三角形问题(trigle) 2017-8-15 int main(int argc, char* argv[]) { int n = 0; while (scanf("%d", &n) == 1 && n > 0 && n <=20) { for (int j = n; j >= 1; --j) { for (int i = 1; i <= n-j; ++i) { printf(" "); } for (int i = (2 * j - 1); i >= 1; --i) { printf("#"); } printf("\n"); } } return 0; }
运行结果走你
然后是第四题,我暂时还没做出来,先跳过
看第五题,上代码,走你
#include//分数化小数 decimal 2017-8-16 #define MAX 1000000 #define MAX_POS 100 int main(int argc, char* argv[]) { int a, b, c,kase = 0; float decm ; while (scanf("%d %d %d", &a, &b, &c)== 3) { decm = (double)a / b; if (kase) printf("\n"); //输出指定精确位的指定形式输出 char str_form[20] = ""; sprintf(str_form, "%s.%df\n", "Case %d: %", c); printf(str_form, ++kase, decm); } }
在这里我是用了sprinf函数进行一个格式化输出以便于,输出指定的精确位数,鄙人愚见,不知道有没有更好的方法输出.上面还没有加结束条件
运行结果
好了今天就这么多了,时间宝贵,早点睡觉,健康还是最重要的.
注:编程不是看书看会的,也不是听课听会的,而是练会的.