当前位置: 首页 > article >正文

LeetCode2894 分类求和并作并作差

计算区间内特定整数和的差值 

一、引言

在编程学习和实际应用中,经常会遇到对给定区间内的整数按照一定规则进行求和,并计算差值的问题。今天我们就来探讨这样一道有趣的题目:给定两个正整数 n 和 m,需要分别求出区间 [1, n] 内所有不能被 m 整除的整数之和(记为 num1)以及所有能被 m 整除的整数之和(记为 num2),最后返回 num1 - num2 的差值。接下来我们看看如何用 C 语言来解决这个问题。

二、题目分析

要解决这个问题,核心思路就是遍历从 1 到 n 的所有整数,针对每个整数判断它是否能被 m 整除,然后分别累加到对应的和变量中,最后再计算两者的差值。

三、代码实现
#include <stdio.h>

int differenceOfSums(int n, int m);

int main() {
    int n = 10;  // 示例中设定的区间上限
    int m = 3;   // 示例中用于判断整除的数

    int result = differenceOfSums(n, m);

    printf("在区间[1, %d]内,按照能否被%d整除计算得到的差值为: %d\n", n, m, result);

    return 0;
}

int differenceOfSums(int n, int m) {
    int num1 = 0;
    int num2 = 0;
    for (int i = 1; i <= n; i++) {
        if (i % m!= 0) {
            num1 += i;
        }
        else {
            num2 += i;
        }
    }
    return num1 - num2;
}
四、代码解释
  1. differenceOfSums 函数部分
    • 首先,我们定义了两个整型变量 num1 和 num2,并初始化为 0,它们分别用于累加两种不同情况的整数和。
    • 接着通过 for 循环,循环变量 i 从 1 开始,每次递增 1,直到 i 不超过 n 为止。在每次循环中:
      • 使用取余运算符 % 判断 i 是否能被 m 整除。如果 i % m!= 0,说明 i 不能被 m 整除,那么就把 i 累加到 num1 中,通过 num1 += i 语句实现。
      • 反之,如果 i % m == 0,表明 i 能被 m 整除,此时就把 i 累加到 num2 中,即执行 num2 += i 语句。
    • 最后,函数返回 num1 - num2 的值,也就是我们要求的差值。
  2. main 函数部分
    • 在这里定义了 n 和 m 两个变量,并且给它们赋予了示例值(当然,你可以根据自己的需求修改这两个值来测试不同情况)。
    • 调用 differenceOfSums 函数,将返回的结果存储在 result 变量中,然后通过 printf 函数将相关信息和结果进行输出展示,方便我们直观地看到计算得到的差值情况。
五、总结

通过这样一个简单的编程示例,我们可以看到,在处理涉及区间内整数按条件求和及求差值这类问题时,只要清晰地分析题目要求,利用基本的循环和条件判断语句就能很好地解决问题。同时,这也是 C 语言中基础操作的一种实际应用,希望对大家学习 C 语言编程有所帮助,也欢迎大家一起探讨更多有趣的编程题目呀!

 


http://www.kler.cn/a/465783.html

相关文章:

  • PHP Array:精通数组操作
  • Prism模块化
  • 当今世界如何减少暴戾之气和矛盾纷争
  • 在线二维码生成器-GO在线工具-文本工具
  • spring mvc源码学习笔记之五
  • Linux vi/vim 编辑器:功能强大的文本处理工具
  • 关于mybatis的框架方面的问题
  • 中关村科金智能呼叫中心能为传统呼叫中心带来什么样的变革?
  • 2025.01.02(数据库)
  • form的方法
  • 结构型模式6.享元模式
  • CameraCtrl: Enabling Camera Control forText-to-Video Generation 论文解读
  • Qemu配置QXL显卡支持分辨率
  • 构建一个简单的Promise
  • LQ24fresh
  • Java项目实战II基于微信小程序的家庭大厨(开发文档+数据库+源码)
  • 经典文献阅读之--Senna(桥接大型视觉语言模型和端到端自动驾驶)
  • el-table动态行和列及多级表头
  • 【每日学点鸿蒙知识】Video播放失败、toggle拖拽、图片裁剪旋转等
  • C语言----函数
  • postgres docker安装
  • 【数据仓库】hadoop3.3.6 安装配置
  • [CTF/网络安全] 攻防世界 command_execution 解题详析
  • df.groupby与apply一起使用,举例项目中实际经常使用的场景
  • 基于SpringBoot的网上订餐系统(源码+数据库+文档)
  • C# _ 数字分隔符的使用