for (表达式1;表达式2;表达式3) { 循环语句 }
表达式3 用来修改循环变量的值,称为循环步长。算法
int S = 0; for (int i = 1; i <= 100; i++) { S = S + i; } printf("%d\n",S);
1)对于已经肯定是累加算法的题目,首先肯定累加项与循环变量的关系;
2)而后,考虑第一个累加项的值是多少,以肯定循环变量的初值;
3)其次,肯定最后一个累加项的值,肯定循环条件;
4)最后,考虑每一个累加项之间的关系,以肯定循环变量的变化(步长值)。编程
例如:若是a = 3,n = 5,则表达式为:S = 3 + 33 + 333 + 3333 + 33333。设计
int S = 0; int t = 0; for (int i = 0;i < 5;i++ ) { t = t * 10 + 3; S = S + t; } printf("%d\n",S);
水仙花数:每位数字的3次幂之和等于它自己。例:1^3 + 5^3 + 3^3 = 153。
四叶玫瑰数:每位数字的4次幂之和等于它自己。
五角星数:每位数字的5次幂之和等于它自己。
六位数:每位数字的6次幂之和等于它自己。code
// 打印出全部的水仙花数 int i,j,k,n,s; for(i = 1;i <= 9;i++) for(j = 0;j <= 9;j++) for(k = 0;k <= 9;k++) { n = k * k * k + j * j * j + i * i * i; s = i * 100 + j * 10 + k; if (n == s) { printf("%d\n",n); } }
// 打印出全部水仙花数 int i,j,k,n,s; printf("水仙花数有:\n"); for(n = 100;n < 1000;n++) { i = n / 100; /*分解出百位*/ j = n / 10 % 10; /*分解出十位*/ k = n % 10; /*分解出个位*/ s = i * i * i + j * j * j + k * k * k; if(s == n) { printf("%d\n",n); } }