SDUT-2502 火星計數法(JAVA*)

火星計數法

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

火星人的計數規則裏只有a,b,c,d四個字母,計數規則從小到大是 a,b,c,d,aa,ab,ac,ad,ba,……。
給出來由a,b,c,d四種字母組成的火星數字,算出該數字是第幾個(從1開始)。

Input

第一行輸入一個數T代表測試用例組數(T<=200),接下來T組測試用例,每組測試數據爲一個火星數字(長度小於100)。

Output

 對於每組測試用例,輸出該火星數字代表多少(結果對10000007取模)。每行輸出一個結果。

Sample Input

2
a
ab

Sample Output

1
6

Hint

快速冪

參考:https://blog.csdn.net/qq_16255321/article/details/41983919

https://blog.csdn.net/alps1992/article/details/42131581

Source

中國海洋大學第三屆“朗訊杯”編程比賽高級組試題

//package leslie;//本題可以看做是求五進制串表示的值

import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n=cin.nextInt();
		String getchar=cin.nextLine();
		while(n-->0)
		{
			char arr[]=cin.nextLine().toCharArray();
			long sum=0;
			for(int i=0;i<arr.length-1;i++)
				sum=(sum+arr[i]-'a'+1)*4; 
			sum=sum+arr[arr.length-1]-'a'+1;//加上字符串最後一位表示的值
			sum%=10000007;
			System.out.println(sum);
		}
		cin.close();
	}
}

//package leslie;//本題因爲數值較大,可以用快速冪求解

import java.util.*;

public class Main {
	static char arr[] = new char[105];
	final static int Mod = 10000007;

	public static long Fast_Power(long p, long n) { // 快速冪
		long ans = 1, base = p;
		while (n != 0) {
			if (n % 2 == 1)
				ans *= base % Mod;
			base *= base % Mod;
			n = n / 2;
		}
		return ans;
	}

	public static void Ans() {
		long sum = 0;
		for (int i = 0; i < arr.length; i++) {
			long n = arr[i] - 'a' + 1;
			sum = (sum + (n * Fast_Power(4, arr.length - i - 1))) % Mod;// 可以把字符串每一位看成一層,一層一層疊加求出答案
		}
		System.out.println(sum);
	}

	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		String getchar = cin.nextLine();
		while (n-- > 0) {
			arr = cin.nextLine().toCharArray();
			Ans();
		}
		cin.close();
	}
}
/*
 * 快速冪另一種寫法 if(n==0)return 1; long ans=Fast_Power(p,n/2); ans=ans*ans%Mod;
 * if(n&1)ans=ans*p%Mod; return ans;//n&1即n%2==1
 */

發佈了194 篇原創文章 · 獲贊 48 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章