编写应用程序,分别使用while和for循环计算8+88+888+n前10项之和。
//不用字符串处理吧 public class Main{ public static void main(String []args){ int n=10; //前n项 long sum=0; //最终的和 int num=8; //基数为8,如果要求9+99+999+n 基数就是9 // for版本: // for(int i=0;i<n;i++){ // sum+=num; // num+=num*10; //基数+=自己×10 即num从8->88 // } //while版本 while(--n>=0){ sum+=num; num+=num*10; } System.out.println("n: "+n+" "+"sum: "+sum); } }
public class Main { public static void main(String[] args) { int ans = 0; int res = 0; int i = 0; while (i++ < 10) { res *= 10; res += 8; ans += res; } System.out.println(ans); } } public class Main { public static void main(String[] args) { int ans = 0; int res = 0; for (int i = 0; i < 10; i++) { res *= 10; res += 8; ans += res; } System.out.println(ans); } }
importjava.math.BigInteger;publicclassMain22{publicstaticvoidmain(String args[]){// long temp=8;// long sum=0;BigInteger temp=newBigInteger("8");BigInteger sum=newBigInteger("0");BigInteger end=newBigInteger("8888888888");while(temp.compareTo(end)<=0){sum=sum.add(temp);temp=temp.multiply(newBigInteger("10")).add(newBigInteger("8"));}System.out.println(sum);temp=newBigInteger("8");sum=newBigInteger("0");for(inti=0;i<10;i++){sum=sum.add(temp);temp=temp.multiply(newBigInteger("10")).add(newBigInteger("8"));}System.out.println(sum);}}
主要是字符串的拼接和转换,每循环一次,就拼接一次+"8",再将数字字符串转换成数字相加。
1.while循环
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long result=0;
String s="";
int i=0;
while(i<10)
{
s+="8";
result+=Long.parseLong(s);
i++;
}
System.out.println(result);
}
}
2.for循环 public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long result=0;
String s="";
for(int i=0;i<10;i++)
{
s+="8";
result+=Long.parseLong(s);
}
System.out.println(result);
}
}