赛码输入输出java_赛码网-计算器的新功能(Java实现)
題目描述
當你學一些可視化程序設計語言時,老師經常會讓你設計并且編程做出一個計算器,這時也許你會仿照windows系統自帶的計算器外觀和功能去設計,但是現在老師要你多做出一個有新功能的計算器,實現當輸入一個數時,能夠將這個數分解成一個或多個素因子乘積的形式,并按素因子的大小排列顯示出來。大家對計算器中數的表示應該很清楚的。下面顯示出了0 — 9這十個數字的表示形式。每個數字都占據5 * 3大小的字符區域
你能實現這個新功能嗎?試試看吧!
輸入
輸入有多組測試數據,每組包括一個正整數n(1 < n <= 1000000)。
樣例輸入
10
2
輸出
對于每個數,將它分解成若干個素數乘積的形式,并按從小到大的順序輸出,素因子之間用“ * ”的形式連接。
樣例輸出
-???? -
|?? |
-? *? -
|?????? |
-???? -
-
|
-
|
-
解題思路:做這個題目做的第一步就是將一個整數分解為素數相乘的形式,以前學過,但是已經忘的差不多,這就算是重新溫習一下吧。做這個題目,說實話,思路很簡單,但是實現起來比較麻煩。這個題目需要注意的地方還有:素數可能是一個大于10的數,這時候需要進行分解,分解的過程中我用到了棧,先進先出,正好符合題目的輸出規則。
這個題目還有注意的地方(有點操蛋),就是數字1的輸出,兩個"|"是在5x3的最后一列,剛開始我把它放中間了,然后交上去,wa,改了之后,直接AC了,唉~~~
代碼:
import java.util.*;
public class Main {
public static void printChar(int k,int num){
String[] line1 = {" - "," "," - "," - "," "," - "," - "," - "," - "," - "," "};
String[] line2 = {"| |"," |"," |"," |","| |","| ","| "," |","| |","| |"," "};
String[] line3 = {" "," "," - "," - "," - "," - "," - "," "," - "," - ","*"};
String[] line4 = {"| |"," |","| "," |"," |"," |","| |"," |","| |"," |"," "};
String[] line5 = {" - "," "," - "," - "," "," - "," - "," "," - "," - "," "};
switch (k){
case 0:
System.out.print(line1[num]);
break;
case 1:
System.out.print(line2[num]);
break;
case 2:
System.out.print(line3[num]);
break;
case 3:
System.out.print(line4[num]);
break;
case 4:
System.out.print(line5[num]);
break;
default:
break;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
ArrayList list = new ArrayList<>();
int count = 0;
int tmp = n;
for(int i=2;i<=tmp;) {
if (tmp % i == 0) {
if(i>10){
int num = i;
Stack s = new Stack();
while(num>0){
s.push(num%10);
num/=10;
}
list.add(s.pop());
while(!s.empty()){
list.add(s.pop());
}
}else{
list.add(i);
}
list.add(10);
tmp /= i;
i = 2;
count++;
} else {
i++;
}
}
//System.out.println(count);
for(int k = 0;k<5;k++){
for(int i=0;i
//System.out.println(list.get(i));
printChar(k,list.get(i));
}
System.out.println();
}
}
}
}
總結
以上是生活随笔為你收集整理的赛码输入输出java_赛码网-计算器的新功能(Java实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 管泽元道歉后骆歆回应:不如不道歉 该说的
- 下一篇: c 加密 java解密错误_google