输入n个数,输出里面出现大于等于n/2的数

这篇博客介绍了如何处理输入的n个数,找出其中大于等于n/2的数。首先,通过将输入字符串转换为字符数组并去除空格确定数字个数。接着,创建新数组仅存储数字,并遍历数组,统计大于n/2的数,注意处理特殊情况:当数字均衡分配时,结果应包含两种数字。最后,检查计数值并输出符合条件的数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

(1)首先是n个数,如何判断准确个数,我这里采用String接收然后变为字符数组的方式,要知道的是变为字符数组时,数组里还存放了n个空格,所以输入的数字个数=字符数组.length/2;

(2)知道输入数字的个数之后,new一个新数组去只存放数字(具体存放过程见下方代码),当然,这里数字是按照字符的格式存放的;

(3)经过上一步,也就准备好了我们所需要的数组,接下来就是遍历,循环遍历,用size计数,最后判断是否大于n/2即可,输出。这里要注意一个特殊情况,当n个数均衡被两个数字分配个数时,结果应该是两个数字,比如, 输入1 1 1 2 2 2,应当输出1 2,这里是比较容易忽略的一点,没有想到这一点的话,通过率就只有1/3了哦。为了解决这个问题,就是在判断完size之后,不要break就可以了,这也是我出现了的一个问题,还好想了一下之后明白了。嘿嘿。

     over,如果上面有什么专业术语不对的话,欢迎大家批评指正。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        /*将一行数字变成字符串,再变成字符数组*/
        char[] array=in.nextLine().toCharArray();
        /*得到输入的数字的个数*/
        int count=array.length/2;
        /*创建一个数组用来接收除空格以外的其他字符*/
        char[] arr=new char[count];
        /*将字符放入数组中*/
        int j=0;
        for (int i = 0; i <array.length-1; i++) {
            if (array[i] == ' ') {
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值