迭代是简单而又有效的方法
猴子吃桃
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int main(int argc, char *argv[]) { int n, t; scanf("%d", &n); t = 1; while (n>1) { t = 2*(t+1); n--; } printf("%d\n", t); return 0; } |
也可以使用 for 循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main(int argc, char *argv[]) { int i, n, t; scanf("%d", &n); for ( t=1, i=1; i<n; i++) t = (t+1)*2; printf("%d\n", t); return 0; } |
数字的分解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> #define MAXN 5 int main(int argc, char *argv[]) { int n, i, count=0; int a[MAXN]; scanf("%d", &n); while (n>0) { a[count] = n % 10; n = n / 10; count++; } printf("%d\n", count); for (i=count-1; i>0; i--) printf("%d ", a[i]); printf("%d\n", a[0]); for (i=0; i<count; i++) printf("%d", a[i]); printf("\n"); return 0; } |
判断三位对称素数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> #include <math.h> int is_prime(int n) { int i, t; if (n==1) return 0; t = sqrt(n); for (i=2; i<=t; i++) { if (n%i == 0) return 0; } return 1; } int main(int argc, char *argv[]) { int i, n, a, b; while (scanf("%d", &n)==1) { a = n /100; b = n % 10; if (a>0 && a<=9 && (a==b) && is_prime(n)) printf("Yes\n"); else printf("No\n"); } return 0; } |