Quicksum
題目:校驗和是通過一定的算法掃描一個數據計算出的一個數值。如果數據被改變了,則校驗和也應該發生變化,這樣就可以判斷數據在傳輸過程中是否出現差錯。在這個問題中,你將實現一個稱為Quicksum的校驗和算法。 Quicksum算法計算由大寫字母和空格組成的數據。並且數據開始和結尾的空格不加入計算。一個數據的Quicksum是每個字符的在數據中的位置乘以該字符的值。空格值為0,字母的值就是其在字母表中的位置。因此A=1,B=2,etc。如下是”ACM”和”MID CENTRAL”的Quicksum計算過程: ACM: 1*1 + 2*3 + 3*13 = 46 MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5 *3 + 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650
輸入:每個輸入只包含一個數據,佔一行,不會以空格開頭結尾,長度不超過255字符。
輸出:對於每一個數據,輸出其校驗和,佔一行。
import java.util.Scanner; public class Quicksum { public static int value(char c){ if(c == ' ') return 0; return Character.getNumericValue(c) - Character.getNumericValue('A') + 1; } public static void main(String[] args) { int sum = 0; int i = 1; Scanner scanIn = new Scanner(System.in); String str = scanIn.nextLine(); while(!str.equals("#")){ for(char c : str.toCharArray()){ sum += i * value(c); i++; } System.out.printf("Sum: %d \n", sum); scanIn = new Scanner(System.in); str = scanIn.nextLine(); sum = 0; i = 1; } } }
鏈結到這頁!