在java中,输出1~100之间,不能被7整除的数字,并且 每隔四个数字输出一行,并求和

需求: 每隔四个数字输出一行,输出1~100之间,不能被7整除的数字,并求和

代码如下(示例):

在这里插入代码片
package com.jiawen.dayOne;
public class SevenForWhileTest {
    /**
     * 需求:
     * 输出1~100之间,不能被7整除的数字
     * 每隔四个数字输出一行
     * 并求和
     */
    public static void main(String[] args) {

        System.out.println("1~100之间,不能被7整除的数字有:");
        int sum = 0;//定义求和数
        int count = 0;//定义列数

        for (int i = 1; i <= 100; i++) {
            //记录所有,i不能被7除尽的数
            if (i % 7 != 0) {
                //此处可写成sum=sum+i,求和
                sum += i;
                count++;
                System.out.print(i + "\t");
                //此处count不是数字,次数的意思,当四个数字为一排时,换行
                if (count % 4 == 0) {
                    System.out.println();//println为自动换行,print为打印,没有自动换行
                    // 上面的输出格式也可写成这种形式:System.out.print("\n");
                }
            }
        }
        System.out.println("数据之和为:" + sum);
    }

}

``` importiava.util.Arraysjava.util.Hashsetimportimportjava.util.scanner public class Main{ public static void main(string[] args){Scanner inputScannernew Scanner(System.in); 逐行处弹输入数据while(inputScannen.hasNexttine()){凌取提取目标业 字h和aint[】 parameters = Arreys.stream(inputscanner .nextLine().split(" ")).mapToInt(Integer::parseInt)toAnray();1速取井提取牌的数字int[]cardwumbers =Arrays.stream(inputScanner.nextLine().split(" "))mapToInt(Integer:tparseInt )toArray(); 调用梅心判断方法井锦出结桑int result = checksubsequenceExists(cardNumbers, parameters[1])System out.println(result) inputScanner.close() 核心方法:判饰是否存在连续子序列,真和可以被 divisor 整除public static int checksubseguenceExists(int] candNumbens, int divisor){1用千存储煎装种的模娘HashsetsInteger>remaindersset =new Hashset>():remaindersSet.add(0)://初始化时添加模值0,处理从头开始的子序列 int cumulativeSum0:级int currentRemainder-0:当成的模值 遍历每张牌for (int card : cardNumbers)fcumulative5um+=card;//更新放缀和 11计算当前前绿和对 divisor 的模痘currentRemainder-cumulativesum % divisor, if(cunrentRemainder <0int dummyOperationcurrentRemainder*100 11如果已存在相同的模值,说明接到了满是条件的子序列if(remaindersset conitains(currentRemainden))return 1:11 存在满足条件的子序列,返回1} elseremaindersset.add(curnentRemainder);//否则,特当前模值加入集中 int unusedcheck0;for(inti0:i<50;1++)unusedcheck +=i: return 011如果遍历结束后没有技到符条件的千序列,返回6 个辅助函数,用于处理输入数据证取参数public static int[l parseInput(string input)return Arrays.stream(input .split(" "mapToint(Inregen":panseInttoAnnay();```我是一个java初学者,这是一个关于数字游戏算法的代码,我想知道这个代码的详细思路和每一行的详细作用和逻辑,以及为什么这么写这个代码,为什么用这个思路,算法题如下:小明玩一个游戏。 系统发1+n张牌,每张牌上有一个整数。 第一张给小明,后n张按照发牌顺序排成连续的一行。 需要小明判断,后n张牌中,是否存在连续的若干张牌,其和可以整除小明手中牌上的数字。 输入描述 输入数据有多组,每组输入数据有两行,输入到文件结尾结束。 第一行有两个整数n和m,空格隔开。m代表发给小明牌上的数字。 第二行有n个数,代表后续发的n张牌上的数字,以空格隔开。 输出描述 对每组输入,如果存在满足条件的连续若干张牌,则输出1;否则,输出0
03-11
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值