zoukankan      html  css  js  c++  java
  • nyoj212-k尾相等数

    212-K尾相等数


    内存限制:64MB时间限制:3000msSpecial Judge: No

    accepted:0submit:0

    题目描述:

    输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N均大于等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。下面请编程求出M+N最小的K尾相等数。

    输入描述:

    第一行包含一个正整数T,T<10000,表示有T组数据;
    随后有N行,每行包括一个整数K(K<2*10^10);

    输出描述:

    对于输入的每个整数K,输出对应的M+N的最小值;

    样例输入:

    1
    2

    样例输出:

    120
     
    #include<stdio.h>
    #include<string.h>
    
    int main() 
    {
    	int t,i,j,flag,a[1001];
    	long k,sum;
    
    //	freopen("f:\input.txt","r",stdin);
    	scanf("%d%*c",&t);
    	while(t--)
    	{
    		scanf("%ld",&k);
    		sum = 1;flag = 0;
    		memset(a,0,sizeof(a));
    		for(i = 0;sum < 1000;i++)
    			sum *= k;
    		for(j = 0,sum %= 1000,k %= 1000;j < 1000;j++,i++)
    		{
    			(a[sum] != 0)?(printf("%d
    ",a[sum]+i),flag = 1):(a[sum] = i,sum = sum * k % 1000);
    			if(flag == 1)
    				break;
    		}
    	}
    
    	return 0;
    }        

  • 相关阅读:
    Redis指令(2) ------String
    Redis指令(1) ------常用指令
    Redis数据类型
    Python set集合
    Python random 模块
    Python random 模块
    Python time 模块
    Python sys模块
    Python 递归函数
    Python 局部变量和全局变量
  • 原文地址:https://www.cnblogs.com/aerer/p/9931126.html
Copyright © 2011-2022 走看看