public class HelloWorld{ public static void main(String[] args){ int num =999; int count = 1; do{ count=count+1; num/=10; }while(num/10!=0); System.out.println("它是個"+count+"位的數(shù)!"); } }
public class HelloWorld{ public static void main(String[] args){ int num =999; int count = 1; do{ count=count+1; num/=10; }while(num/10!=0); System.out.println("它是個"+count+"位的數(shù)!"); } }
2016-04-15
這個有點小問題 count的值直接設(shè)為1的話,當(dāng)num為個位數(shù)的時候,結(jié)果的是2位數(shù)。 結(jié)構(gòu)有點小問題。
2016-04-16
count從0開始
2016-04-16
while(num!=0)應(yīng)該就ok了
2016-04-16
do...while語句會先執(zhí)行一步,因此如樓上所說,num是個位會有點小問題,建議使用while,也可雙層FOR循環(huán)
eg:
? ?
public class HelloWorld{
????????public static void main (String[] agrs){
????????int num=999878;
????????int count=0;
????????for(int j=10,i=1,x=1;num>i;i=i*10,x=x+1,j=j*10){
????????????if(num<j){
????????????????count=x;
????????????????System.out.println("這是一個"+count+"位數(shù)");
????????????????break;
????????????????????????}
????????????}
????}
}