末位数字
发布时间: 2017 年 11 月 12 日 20:19 最后更新: 2017 年 11 月 12 日 20:20 时间限制: 1000ms 内存限制: 128M
给定一个整数 n, 求 n 的 n 次方的十进制表示的末位数字。(1 <= n <= 1e9);
输入包括若干组测试数据, 以 0 结束, 0 不需要处理。
输入的每一行包括一个整数 n。
测试数据数量不大于 1e6;
对于输入的每一个 n, 在一行中输出一个整数, 表示所要求的末位数字。
- 3
- 0
源码
有点水。。顺序还可以改一改,少写几行代码,但我有点强迫症,等差数列的强迫症:(
- #include < stdio.h > int main() {
- int n;
- int temp = 1;
- // 0: 0
- // 1: 1
- // 2: 4 6
- // 3: 3 7
- // 4: 4 6
- // 5: 5
- // 6: 6
- // 7: 7 3
- // 8: 4 6
- // 9: 1
- while (scanf("%d", &n) != EOF) {
- if (n == 0) break;
- temp = n % 10;
- switch (temp) {
- case 0:
- printf("0\n");
- break;
- case 1:
- printf("1\n");
- break;
- case 2:
- switch (n % 4) {
- case 0:
- printf("6\n");
- break;
- case 2:
- printf("4\n");
- break;
- }
- break;
- case 3:
- switch (n % 4) {
- case 1:
- printf("3\n");
- break;
- case 3:
- printf("7\n");
- break;
- }
- break;
- case 4:
- printf("6\n");
- break;
- case 5:
- printf("5\n");
- break;
- case 6:
- printf("6\n");
- break;
- case 7:
- switch (n % 4) {
- case 1:
- printf("7\n");
- break;
- case 3:
- printf("3\n");
- break;
- }
- break;
- case 8:
- switch (n % 4) {
- case 0:
- printf("6\n");
- break;
- case 2:
- printf("4\n");
- break;
- }
- break;
- case 9:
- printf("9\n");
- break;
- }
- }
- return 0;
- }