java不指定个数输入

方法1:Scanner.hasNext(只能单行输入一个数)
1.格式

while(in.hasNext()) {
      a[i]=in.nextInt();
      sum+=a[i];
      i++;
}

2.输入要求
(1)一行一个数
(2)输入最后一个数后,再回车制造下一行
(3)Ctrl+z 才能得到结果
(4)编译器能识别,无需担心
在这里插入图片描述

3.样例
洛谷链接:https://www.luogu.com.cn/problemnew/solution/P2415

答案:

public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int[] a=new int[31];
        long sum=0;
        int i=0;

        //不指定输入i个元素
        while(in.hasNext()) {
            a[i]=in.nextInt();
            sum+=a[i];
            i++;
        }
        //定律:所有子集的和     等于元素和  乘以    2的i-1次方
        sum*=Math.pow(2, i-1);
        System.out.println(sum);

    }

方法2:(输入一行数)

        static String[] s=new String[100001];
        String str=in.nextLine();
        s=str.split(" ");                      //将数字用空格隔开
        n=s.length;                            //n是数的个数
        for(int i=1;i<=n;i++) {
        	a[i]=Integer.parseInt(s[i-1]);
        }

样例:https://www.luogu.com.cn/problem/P1020

方法3:特殊字符串,可变字符串。方法直接将多行字符串,变成一行。do while条件 自拟!!!!

StringBuilder s = new StringBuilder();
        
        do{
        	s.append(in.next());
        }while(s.indexOf("E")==-1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值