iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

JAVA簡易教學+CPE歷屆試題講解系列 第 25

[iT鐵人賽Day25]練習題(4)

今天來講第四題練習題囉
其實自己練習到現在,自己的java也有一些些的進步
雖然還是有一些看不懂,甚至要上網查
但至少自己也有練習到,也希望做這些題目能幫助到別人。
好了,回歸正題,今天講到的第四題:
題目大意是:設定一個非負整數,然後找出他的最小自然數
題目輸入是
3
1
10
123456789
然後程式碼如下

import java.util.*;
import static java.lang.System.*;
public class main{
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    int a=sc.nextInt();
    for (int i=0;i<a;i++){
    	int b=sc.nextInt();
    	String count = "";
    	if(b==1 || b==0){
    		out.println(b);
    	}else{
    		int j = 9;
    		while(true){    			
    			if (b%j==0){
    				count = String.valueOf(j)+ count;
    				b = b/j;
    			}else{
    				if(j==2){
    					count = "";
    					break;
    				}else{
    					j = j -1; 
    				}    				   					
    			}
    			if (b==1){
    				break;
    			}
    		}
    	    if(count.equals("")){
    	    	out.println(-1);
    	    }else{
    	    	out.println(count);
    	    } 
    	}
    } 
  }
};

int a=sc.nextInt()的意思是a有3筆資料
int b=sc.nextInt()就是b會等於1,10,123456789
當b等於1,輸出就等於1
當b等於10,輸出就等於25,注意這裡的25是2和5不是25
當b等於123456789的時候比較特別,題目有說(1小於等於N小於等於10的9次方)
所以輸入不能超過10的9次方,所以才會寫
if(count.equals("")){
out.println(-1);
所以輸出就等於-1
然後||的意思是OR的意思,意思就是b等於1或等於0時,條件都成立。
輸出結果如下
https://ithelp.ithome.com.tw/upload/images/20210925/20140567tQWYhgKl5I.png


上一篇
[iT鐵人賽Day24]練習題(3)
下一篇
[iT鐵人賽Day26]練習題(5)
系列文
JAVA簡易教學+CPE歷屆試題講解30

尚未有邦友留言

立即登入留言