这次让小编带大家探索特殊整数求和与方形图案
1特殊整数求和9
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n, m = 0, a, j, k = 0, l = 0, s = 0; //定义变量 int arr[1000] = { 0 }; //初始化数组为0;将符合题目的数存进数组,并设置l为计数器,k是数组下标 scanf("%d", &n); int i = 99; //99之后才会有整数有两个9以上 for (i = 99; l < n; i++) { a = i; while (a) { j = a % 10; a = a / 10; if (j == 9) m++; //判断 } //对10取余,并且每轮除10 if (m >= 2) { arr[k] = i; l++; k++; } m = 0; } for (i = 0; i < n; i++) s = s + arr[i]; //s计算每轮的和 printf("%d ", s); return 0; }
2回文整数求和(写函数求解)
#include<stdio.h> //写一个回文函数,判断是否是回文,如果是,return 1; int huiwen(int n) { int t, m = 0; t = n; //t代替n值 do { m = m * 10 + t % 10; t = t / 10; } while (t != 0); // do while 来先判断是否是回文 //因为0到9也是回文,所以要先做循环,再判断 if (m == n) return 1; else return 0; } int main() { int n, i, sum=0; int l = 0; scanf("%d", &n); //l当计数器 for (i = 1; l < n; i++) { if (huiwen(i)) { sum = sum + i; l++; } } printf("%d ", sum); return 0; }
3输出方形图案
//输出方形图案,可以用二维数组法,也可以用循环输出;下次的旋转百花就一定要用二维数组 #include<stdio.h> int main() { int i, j, n, a, k, y; scanf("%d", &n); a = n; i代表行数,j代表列数 for (i = 0; i < a; i++) { for (j = 0; j < i; j++) //ASCII码中90就代表Z //当列数j大于26时,需要控制它,折回来取A printf("%c", 90 - j % 26); for (k = 0; k < 2 * n - 1; k++) printf("%c", 90 - i % 26); y = i; for (j = 2 * n - 1; j > 2 * n - 1 - i; j--) { printf("%c", 90 - ((y - 1) % 26)); y--; } printf("\n"); n--; } //四层for循环打印上部分 for (i = a - 1; i > 0; i--) { for (j = 0; j < i; j++) printf("%c", 90 - j % 26); for (j = i; j < 2 * a - 1 - i; j++) printf("%c", 90 - ((i - 1) % 26)); y = i; for (j = 2 * a - 1 - i; j < 2 * a - 1; j++) { printf("%c", 90 - ((y - 1) % 26)); y--; } printf("\n"); } return 0; }
4输出菱形
#include<stdio.h> int main() { char a = 'Z'; int n, i, j, k; scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j <= 2*n-2+2*i; j++) { if (j == 2 * n - 2 - 2 * i || j == 2 * n - 2 + 2 * i) { printf("%c", a); a--; if (a < 65) a = 90; } else { printf(" "); } } printf("\n"); } for (i = n - 2; i >= 0; i--) { for (j = 0; j < 2*n+2*i-1 ; j++) { if (j == 2 * n-2 - 2 * i || j == 2 * n - 2 + 2 * i) { printf("%c", a); a--; if (a < 65) a = 90; } else printf(" "); } printf("\n"); } return 0; }