#8710: a002問題


sam0219mm (sam)

學校 : 靜宜大學
編號 : 31839
來源 : [125.230.165.34]
最後登入時間 :
2014-07-24 12:41:45
a002. 簡易加法 | From: [122.118.227.213] | 發表日期 : 2014-03-12 09:43

請問一下 hasNext()的原理是甚麼?
是一次把所有的輸入一次輸入嗎? 如果我要加判斷要怎麼處理,我是打算加入月份日期錯誤時自動重新輸入
新手剛接觸,謝謝各位前輩 
這是題目:

內容 :

  兩光法師時常替人占卜,由於他算得又快有便宜,因此生意源源不絕,時常大排長龍,他想算 得更快一點,因此找了你這位電腦高手幫他用電腦來加快算命的速度。

  他的占卜規則很簡單,規則是這樣的,輸入一個日期,然後依照下面的公式: 
M=月 
D=日 
S=(M*2+D)%3 

得到 S 的值,再依照 S 的值從 0 到 2 分別給與 "普通"、"吉"、"大吉"等三種不同的運勢

輸入說明 : 

月份及日期

輸出說明 : 

運勢
範例輸入 : help
1 1 1 2

範例輸出 :

普通 
吉 
 
import java.util.Scanner;
public class three {

    public static void main(String[] args) {
    int m,d,s;
    Scanner input=new Scanner(System.in);
    while(input.hasNext())
    {
    m=input.nextInt();
    if(m>12||m<1)
    m=input.nextInt();
    d=input.nextInt();
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
    {
    if(m>31||m<1)
    {
    m=input.nextInt();
    }
    }
    if(m==2)
    {
       if(m>29||m<1)
    {
    m=input.nextInt();
    }
    }
    if(m==4||m==6||m==9||m==11)
    {
    if(m>30||m<1)
    {
    m=input.nextInt();
    }
    }
    s=(m*2+d)%3;
    if(s==0)
    {
    System.out.println("普通");
    }
    if(s==1)
    {
    System.out.println("吉");
    }
    if(s==2)
    {
    System.out.println("大吉");
    }
   
    }
   
    }
    
    
}
 
#8711: Re:a002問題


sam0219mm (sam)

學校 : 靜宜大學
編號 : 31839
來源 : [125.230.165.34]
最後登入時間 :
2014-07-24 12:41:45
a002. 簡易加法 | From: [122.118.227.213] | 發表日期 : 2014-03-12 09:47

剛變數弄錯 
import java.util.Scanner;
public class three {

    public static void main(String[] args) {
    int m,d,s;
    Scanner input=new Scanner(System.in);
    while(input.hasNext())
    {
    m=input.nextInt();
    if(m>12||m<1)
    m=input.nextInt();
    d=input.nextInt();
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
    {
    if(d>31||d<1)
    {
    d=input.nextInt();
    }
    }
    if(m==2)
    {
       if(d>29||d<1)
    {
    d=input.nextInt();
    }
    }
    if(m==4||m==6||m==9||m==11)
    {
    if(d>30||d<1)
    {
    d=input.nextInt();
    }
    }
    s=(m*2+d)%3;
    if(s==0)
    {
    System.out.println("普通");
    }
    if(s==1)
    {
    System.out.println("吉");
    }
    if(s==2)
    {
    System.out.println("大吉");
    }
   
    }
   
    }
    
    
 
ZeroJudge Forum