首页 > 试题广场 >

编写应用程序,分别使用while和for循环计算8+88+8

[问答题]

编写应用程序,分别使用whilefor循环计算8+88+888+n10项之和。

//不用字符串处理吧
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);
     }
}


发表于 2017-02-01 16:02:35 回复(4)
 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);
    }
}
发表于 2017-08-14 16:48:58 回复(0)
public class B { public static void main(String[] args) { StringBuilder strFor = new StringBuilder(); strFor.append("8"); long valueFor = 0; for (int i = 0; i < 10; i++) { long integer = Long.parseLong(strFor.toString()); valueFor = integer + valueFor; strFor.append("8"); } System.out.println(valueFor); StringBuilder strWhile = new StringBuilder(); strWhile.append("8"); long sum = 0; int i = 0; while (i < 10) { long l = Long.parseLong(strWhile.toString()); sum = l + sum; strWhile.append("8"); i++; } System.out.println(sum); } }
发表于 2022-07-02 23:20:23 回复(0)

public class Test4 {
 public static void useWhile(int n){
  StringBuilder sb=new StringBuilder();
  sb.append("8");
  int count=0,result=0;
  while(count<n){
   result+=Integer.parseInt(sb.toString());
      count++;
      sb.append("8");
  }
  System.out.println(result);
 }
 
 public static void useFor(int n){
  StringBuilder sb=new StringBuilder();
  sb.append("8");
  int result=0;
  for(int i=0;i<n;i++){
   result+=Integer.parseInt(sb.toString());
      sb.append("8");
  }
  System.out.println(result);
 }
 
 public static void main(String[] args) {
 
  useWhile(2);
  useFor(2);
  
 }
}
发表于 2017-09-09 11:38:15 回复(0)
function getNthSum(n){
	if (n<1) {
		return 0;
	}
	var arr=[],sum=0,temp=0;
	for(var i=1;i<=n;i++){
		arr.length=i;
		temp=arr.fill(8).join('');
		sum+=parseInt(temp);
	}
	console.log(sum);
}
getNthSum(10);

发表于 2017-08-19 08:51:15 回复(0)
#include<iostream>
using namespace std;
int main()
{
	long long int sum=0,num=8;
	int n=10;
	/*for(int i=0;i<n;i++)
	{
		sum+=num;
		num=num*10+8;
	}*/
	while(n--)
	{
		sum+=num;
		num=num*10+8;
	}
	cout<<sum;
	return 0;
} 
编辑于 2017-08-14 14:41:27 回复(0)
package com.heima;
public class Demo2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long sum=8;
for(int i=0;i<9;i++){
long a=sum*10;
sum=sum+a;
}
System.out.println(sum);
}

}

发表于 2017-08-08 16:38:26 回复(0)
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);
     }
}

发表于 2017-08-08 09:31:16 回复(0)
主要是字符串的拼接和转换,每循环一次,就拼接一次+"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);
	}

} 


发表于 2017-02-01 12:10:41 回复(0)