鱼C论坛

 找回密码
 立即注册
查看: 2288|回复: 57

题目1:找出1000以下自然数中3和5的倍数之和

[复制链接]
发表于 2023-5-9 17:38:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 欧拉计划 于 2023-7-4 19:16 编辑

题目1:找出1000以下自然数中3和5的倍数之和


Multiples of 3 and 5

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.


题目翻译:

10 以下的自然数中,属于 3 或 5 的倍数的有 3, 5, 6 和 9,它们之和是 23。

找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和。


视频讲解:




思路解析及源码参考(C & Python):

游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 2荣誉 +4 鱼币 +5 贡献 +6 收起 理由
中英文泡椒 + 2 + 2 + 3 打卡打卡
不二如是 + 2 + 3 + 3 学习打卡

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-11 10:52:11 | 显示全部楼层
  1. #include <bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     int res = 0;
  6.     for(int i=3;i<1000;i++)
  7.         if(i%3==0||i%5==0) res += i;
  8.     cout<<res<<endl;
  9.     return 0;
  10. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2023-5-12 20:06:26 From FishC Mobile | 显示全部楼层
很不错,值得学习,学到了就赚到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 20:09:08 From FishC Mobile | 显示全部楼层
真不错嘞可以学活很多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 20:12:28 From FishC Mobile | 显示全部楼层
会写算法的人都牛ber一 太厉害辣
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 21:26:38 From FishC Mobile | 显示全部楼层
本帖最后由 凌凌祺 于 2023-5-12 21:35 编辑

学数学,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 21:28:28 From FishC Mobile | 显示全部楼层
本帖最后由 clollipops 于 2023-7-25 18:33 编辑

233168
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 21:32:41 | 显示全部楼层
  1. print(sum([i for i in range(1, 1000) if i % 3 == 0 or i % 5 == 0]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 03:48:18 | 显示全部楼层
  1. public static void main(String[] args) {
  2.         int sum = 0;
  3.         for (int i = 0; i < 1000; i++) {
  4.                 if (i % 3 == 0 || i % 5 == 0) {
  5.                         sum += i;
  6.                 }
  7.         }
  8.         System.out.println(sum);
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 10:02:23 | 显示全部楼层
学习到啦,感谢感谢,照着做还出错,加油

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 16:47:32 | 显示全部楼层
枚举当然简单,想看数学做法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 16:54:57 | 显示全部楼层
O(1) 做法:
  1. #include <stdio.h>

  2. int n;
  3. long long sum = 0; //一个变量统计答案

  4. int main() {
  5.         scanf("%d", &n);
  6.         --n;
  7.         //求出 [1, n) 中 3 的倍数和
  8.         sum += (3 + (n - n % 3)) * (n / 3) / 2;
  9.         //(首项+末项)*项数/2
  10.         //求出 [1, n) 中 5 的倍数和
  11.         sum += (5 + (n - n % 5)) * (n / 5) / 2;
  12.         //减去 [1, n) 中 15 的倍数
  13.         sum -= (15 + (n - n % 15)) * (n / 15) / 2;
  14.         //输出答案
  15.         printf("%lld\n", sum);
  16.         return 0;
  17. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 17:34:59 From FishC Mobile | 显示全部楼层
又学习到了,感觉学习编程和数学息息相关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 18:57:22 | 显示全部楼层
懒得用C++了,写个python。

print(sum([i for i in range(1, 1000) if i % 5 == 0 or i % 3 == 0]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 19:49:00 | 显示全部楼层
元豪 发表于 2023-5-13 18:57
懒得用C++了,写个python。

print(sum())


你这效率太慢了)笑

O(1)
  1. #include <stdio.h>

  2. int n;
  3. long long sum = 0; //一个变量统计答案

  4. int main() {
  5.         scanf("%d", &n);
  6.         --n;
  7.         //求出 [1, n) 中 3 的倍数和
  8.         sum += (3 + (n - n % 3)) * (n / 3) / 2;
  9.         //(首项+末项)*项数/2
  10.         //求出 [1, n) 中 5 的倍数和
  11.         sum += (5 + (n - n % 5)) * (n / 5) / 2;
  12.         //减去 [1, n) 中 15 的倍数
  13.         sum -= (15 + (n - n % 15)) * (n / 15) / 2;
  14.         //输出答案
  15.         printf("%lld\n", sum);
  16.         return 0;
  17. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 19:51:32 | 显示全部楼层
zhangjinxuan 发表于 2023-5-13 19:49
你这效率太慢了)笑

O(1)


只要枚举1000,还是很快滴~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 19:54:37 | 显示全部楼层
元豪 发表于 2023-5-13 19:51
只要枚举1000,还是很快滴~

多测题:你说什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 19:55:49 | 显示全部楼层
元豪 发表于 2023-5-13 19:51
只要枚举1000,还是很快滴~

订阅淘专辑,你好像忘了很多天了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-13 23:53:48 | 显示全部楼层
好好学习,天天向上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-24 08:25:25 | 显示全部楼层
total = []
for i in range(1000):
    if i % 3 == 0 or i % 5 == 0:
        total.append(i)

print(sum(total))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-25 06:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表