日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

赛码输入输出java_赛码网-计算器的新功能(Java实现)

發(fā)布時間:2024/9/19 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 赛码输入输出java_赛码网-计算器的新功能(Java实现) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

當你學一些可視化程序設計語言時,老師經常會讓你設計并且編程做出一個計算器,這時也許你會仿照windows系統(tǒng)自帶的計算器外觀和功能去設計,但是現(xiàn)在老師要你多做出一個有新功能的計算器,實現(xiàn)當輸入一個數時,能夠將這個數分解成一個或多個素因子乘積的形式,并按素因子的大小排列顯示出來。大家對計算器中數的表示應該很清楚的。下面顯示出了0 — 9這十個數字的表示形式。每個數字都占據5 * 3大小的字符區(qū)域

你能實現(xiàn)這個新功能嗎?試試看吧!

輸入

輸入有多組測試數據,每組包括一個正整數n(1 < n <= 1000000)。

樣例輸入

10

2

輸出

對于每個數,將它分解成若干個素數乘積的形式,并按從小到大的順序輸出,素因子之間用“ * ”的形式連接。

樣例輸出

-???? -

|?? |

-? *? -

|?????? |

-???? -

-

|

-

|

-

解題思路:做這個題目做的第一步就是將一個整數分解為素數相乘的形式,以前學過,但是已經忘的差不多,這就算是重新溫習一下吧。做這個題目,說實話,思路很簡單,但是實現(xiàn)起來比較麻煩。這個題目需要注意的地方還有:素數可能是一個大于10的數,這時候需要進行分解,分解的過程中我用到了棧,先進先出,正好符合題目的輸出規(guī)則。

這個題目還有注意的地方(有點操蛋),就是數字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实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。