close
題目概要:
輸入一個數字N(最大值為10^1000),判斷給定某數s(1<=s<=12)是否可以整除N。
解題方向:
1. 使用倍數判別,判斷使否整除。(網路看到的解法,值得一試)
2. 直接硬幹,寫個長除法的程式碼出來。(本題是用這個)
程式碼:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Java | |
import java.util.Scanner; | |
import java.util.Vector; | |
import java.util.Iterator; | |
class uva11344{ | |
public static void main(String args[]){ | |
Scanner sc=new Scanner(System.in); | |
int cases=Integer.parseInt(sc.nextLine()); //總共有多少case需要判斷。 | |
for(int i=0;i<cases;i++){ | |
String st=sc.next(); //被除數。 | |
int setSize=Integer.parseInt(sc.next()); //除數個數。 | |
Vector<Integer> vector=new Vector<Integer>();//除數。 | |
for(int j=0;j<setSize;j++){ | |
vector.add(Integer.parseInt(sc.next())); | |
} | |
boolean flag=true; | |
Iterator<Integer> iterator=vector.iterator(); | |
while(iterator.hasNext()){ | |
int temp=0; | |
int d=iterator.next(); | |
for(int k=0;k<st.length();k++){ | |
temp=(temp*10+st.charAt(k)-48)%d; //長除法。 | |
} | |
if(temp!=0){ | |
flag=false; | |
break; | |
} | |
} | |
//Output | |
if(flag) System.out.println(st+" - "+"Wonderful."); | |
else System.out.println(st+" - "+"Simple."); | |
} | |
} | |
} |
文章標籤
全站熱搜