2 条题解
-
1
#include <stdio.h> #include <math.h> int main() { int n, a, k; scanf("%d %d %d", &n, &a, &k); int limit = pow(10, n); for(int b = 0; b < limit; b++){ int tempa = a, tempb = b; int count = 0; for (int i = 1; i <= n; i++) { int x = tempa % 10, y = tempb % 10; tempa /= 10; tempb /= 10; if (abs(x - y) == 1 || abs(x - y) == 9){ count++; } else if (x != y) { count = -1; break; } } if ((count != -1) && (count <= k)) { printf("%d\n", b); } } return 0; }
-
0
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int main() { int n, a, k; scanf("%d %d %d", &n, &a, &k); int limit = pow(10, n); for (int b = 0; b < limit; b++)//全部输出一遍 { int tempa = a, tempb = b;//防止ab变化 int count = 0; for (int i = 1; i <= n; i++)//i之前循环次数的作用 { int x = tempa % 10, y = tempb % 10; tempa /= 10; tempb /= 10; if (abs(x - y) == 1 || abs(x - y) == 9)//绝对值,直接压过前导0的压力 { count++;//合理利用变量 } else if (x != y) { count = -1; break; } } if ((count != -1) && (count <= k)) { printf("%d\n", b); } } return 0; }
- 1
信息
- ID
- 1014
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 30
- 已通过
- 12
- 上传者