在這裏,我發現八位數字高達3位數字,我使用冗長如果條件任何人都可以減少這一點,如果語句和值分配。請注意,不要使用prdefined過程或內置包..如何找到給定的數字是八進制還是不是?
import java.util.Scanner;
class octdec
{
public static void main(String arg[])
{
int back=0;
do
{
Scanner ip = new Scanner(System.in);
int no,mod1,mod2,mod3,diff1,diff2,diff3,num1,num2,num3;
System.out.print("Enter Octal No upto 3 digits : ");
no=ip.nextInt();
mod1=no%10;
mod2=no%100;
mod3=no%1000;
diff1=no-mod1;
diff2=no-mod2;
diff3=no-mod3;
num1=diff1/10;
num2=diff2/100;
num3=diff3/1000;
if(no==8||no==9||mod1==8||mod1==9||mod2==8||mod2==9||mod3==8||mod3==9||num1==8||num1==9||num2==8||num2==9||num3==8||num3==9)
System.out.println("Invaild Octal Nimber ");
else
System.out.println("Vaild Octal Nimber :"+no);
}
while(back==0);
}
}
提示:使用'while'循環。 –
一個'int'沒有一個八進制,十進制或其他任何屬性。八進制,十進制,十六進制等只是顯示數字的不同方式 - 它不是數字的固有屬性。你不能拿一個'int'來檢查它是否是八進制的。 – Jesper