zoukankan      html  css  js  c++  java
  • UVA 10515

    UVA 10515 - Powers Et Al.

    题目链接

    题意:求出m^n最后一位数

    思路:因为m和n都非常大,直接算肯定是不行的,非常easy想到取最后一位来算,然后又非常easy想到最后一位不断乘自身肯定会形成周期。而且这个周期还挺短的,于是先求出周期,然后用n去取模该周期求出答案是第几个就可以

    代码:

    #include <stdio.h>
    #include <string.h>
    
    int t[10];
    int save[10][10];
    char n[105], m[105];
    
    int solve(int num) {
    	int lenn = strlen(n);
    	int mod = 0;
     	for (int i = 0; i < lenn; i++) {
    		mod = (mod * 10 + n[i] - '0') % num;
     	}
     	mod--;
     	if (mod < 0) mod = num - 1;
     	return mod;
    }
    
    int main() {
    	for (int i = 0; i < 10; i++) {
    		int tmp = i;
    		save[i][t[i]++] = i;
    		tmp = tmp * i % 10;
    		while (tmp != i) {
    			save[i][t[i]++] = tmp;
       			tmp = tmp * i % 10;
      		}
     	}
      	while (~scanf("%s%s", m, n)) {
       		if (strcmp(m, "0") == 0 && strcmp(n, "0") == 0) break;
       		int start = m[strlen(m) - 1] - '0';
       		printf("%d
    ", save[start][solve(t[start])]);
        } 	
    	return 0;
    }


  • 相关阅读:
    IDEA学习和收藏夹
    mysql资料收集及学习
    一些模板代码
    docker学习
    Spring事务传播类型
    rust学习疑惑
    [重新做人]从头学习JAVA SE——java.lang.reflect
    java核心技术卷一
    Spring实战 难懂的JavaBean
    Spring实战系列
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6936168.html
Copyright © 2011-2022 走看看