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); } }