JAVA编程面试题

怪兽sec 2019-04-10 10:07:02
功能:自然数求和.(1,2,3,4,...,100)
要求:
1.可以输入要计算的数字,(从1开始到第几个求和)
2.每三个连续数字(或每三个上轮求和的结果)为一组求和,进行N轮
3.最终求出一个最终的和值
4.每轮剩余两个数字也求和,剩余一个数字轮空到下轮
5.输出每轮各组数字求和结果
提示:倒三角
...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qps2009 2019-04-11
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入n:");
        int n=scanner.nextInt();
        getSum(n);
    }
    public static void getSum(int n){
        List<Integer> list=new ArrayList<>();
        for(int i=1;i<=n;i++){
            list.add(i);
            System.out.print(i+" ");
        }
        System.out.println();
        while (list.size()>1){
            List<Integer> list1=new ArrayList<>();
            int sum=0;
            for(int i=0;i<list.size();i++){
                sum+=list.get(i);
                if((i+1)%3==0){
                    System.out.print(sum+" ");
                    list1.add(sum);
                    sum=0;
                    if(i==list.size()-1){
                        System.out.println();
                    }
                }
                if(i==list.size()-1){
                    if(sum!=0) {
                        System.out.println(sum + " ");
                        list1.add(sum);
                    }
                }
            }
            list=list1;
        }
    }

}
输出结果
请输入n:
10
1 2 3 4 5 6 7 8 9 10 
6 15 24 10 
45 10 
55 
不知道是不是我理解的这样
java-小学生 2019-04-11
  • 打赏
  • 举报
回复

import java.util.Scanner;
public class Day0411 {
    public static int cishu = 1;

    public static void main(String[] args) {
        /**
         * 功能:自然数求和.(1,2,3,4,...,100)
         要求:
         1.可以输入要计算的数字,(从1开始到第几个求和)
         2.每三个连续数字(或每三个上轮求和的结果)为一组求和,进行N轮
         3.最终求出一个最终的和值
         4.每轮剩余两个数字也求和,剩余一个数字轮空到下轮
         5.输出每轮各组数字求和结果
         提示:倒三角
         */

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要求和的数字:");
        int end = sc.nextInt();
        if (end > 100 || end < 1) {
            System.out.println("请输入1-100之间的整数");
            end = sc.nextInt();
        }
        int sum[] = new int[end];
        for (int i = 0; i < end; i++) {
            sum[i] = i + 1;
            System.out.print(sum[i]+" ");
        }
        System.out.println("");
        qiuHe(sum);
    }

    private static void qiuHe(int[] sum) {
        if (sum.length == 1) {
            return;
        }
        int temp = 0;
        int j = 0;
        for (int i = 0; i < sum.length; i++) {
            temp = temp + sum[i];
            if (((i + 1) % 3 == 0) || (sum.length == (i + 1) && (i + 1) % 3 == 2)) {
                //System.out.println(temp);
                sum[j] = temp;
                j++;
                temp = 0;
            } else if (sum.length == (i + 1) && (i + 1) % 3 == 1) {
                sum[j] = sum[i];
                j++;
                temp = 0;
            }
        }
        int ss[] = new int[j];
        System.arraycopy(sum, 0, ss, 0, j);
        System.out.println("第" + cishu + "轮求和后为:");
        for (int i = 0; i < ss.length; i++) {
            System.out.print(ss[i] + "  ");
        }
        System.out.println("");
        cishu++;
        qiuHe(ss);
    }
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧