2017蓝桥杯省赛---java---C---7 Excel地址)
生活随笔
收集整理的這篇文章主要介紹了
2017蓝桥杯省赛---java---C---7 Excel地址)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
Excel單元格的地址表示很有趣,它使用字母來表示列號。 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, …當然Excel的最大列號是有限度的,所以轉換起來不難。 如果我們想把這種表示法一般化,可以把很大的數字轉換為很長的字母序列呢?本題目既是要求對輸入的數字, 輸出其對應的Excel地址表示方式。例如, 輸入:26 則程序應該輸出:Z再例如, 輸入:2054則程序應該輸出:BZZ我們約定,輸入的整數范圍[1,2147483647]資源約定: 峰值內存消耗(含虛擬機) < 256M CPU消耗 < 1000ms請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。 主類的名字必須是:Main,否則按無效代碼處理。思路分析
代碼實現
package TEST;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);int target=input.nextInt();char []ans=new char[1000000];int index=0;while(target>0){int temp=target%26;if(temp==0){//需要進位ans[index++]='Z';target=(target-26)/26;}else {//不需要進位ans[index++]=(char)('A'+temp-1);target=(target-temp)/26;}}for(int i=index-1;i>=0;i--){System.out.print(ans[i]);}}}總結
以上是生活随笔為你收集整理的2017蓝桥杯省赛---java---C---7 Excel地址)的全部內容,希望文章能夠幫你解決所遇到的問題。