打印图形:
思路分析:
找出规律,每行怎么打印,第一行到中间位置先打的空格数量变化
从上到下,打印到中间位置之后,倒过来在打印一遍,由于中间位置已经打印,所以注意a的起始值
代码示例:
#include<stdio.h> #include<stdlib.h> int main() { int a, b,c; for (a=1; a <= 5; ++a) { for (b = 1; b <= 5-a; ++b)//每行打的空格数5-i个 { putchar(' ');//打印空格 } for (b=1; b <= 2 * a - 1; ++b)//每行打印的*数量满足2*a-1 { putchar('*');//打印* } putchar('n'); } for (a = 4; a >= 1; --a)//倒着打印,从第四行打,第五行重复,所以不打印 { for (b = 1; b <= 5 - a; ++b) { putchar(' '); } for (b = 1; b <= 2 * a - 1; ++b) { putchar('*'); } putchar('n'); }system("pause");return 0; }
打印100-999之间的水仙花数:
思路分析:
使用遍历,把每一个数都拿到,然后分别取出个位十位和百位,此题只需要打印3位数内的水仙花数
所以只需要计算个位十位百位的立方之和是不是等于原数,如果等于,则是水仙花数
代码示例:
#include<stdio.h> #include<stdlib.h> int main() { int a, b, c, d; for (a = 100; a <1000; ++a) { b = a % 10;//表示a的个位数 c = a / 10 % 10;//表示a的十位数 d = a / 100;//表示a的百位数 int sum = b*b*b + c*c*c + d*d*d; if (sum == a)//判断是否是水仙花数 { printf("%dn",a);//将水仙花数打印下来 } } system("pause"); return 0; }
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
例如:2+22+222+2222+22222
思路分析:
迭代法的应用,可以说是公式一般的代码
代码示例:
#include<stdio.h> #include<stdlib.h> int main() { int a; int tmp = 0; int sum = 0; scanf("%d", &a); for (int i = 1; i < 6 ; ++i) { tmp = tmp * 10 + a; sum+=tmp; } printf("sum=%d", sum); system("pause"); return 0; }