鱼C论坛

 找回密码
 立即注册
查看: 1908|回复: 10

[已解决]计算出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和

[复制链接]
发表于 2019-5-29 21:24:25 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>

int main(){
        int sum = 0;
        for(int i = 0;i<=1000;i++)
        {
                if(i % 3 == 0&&i % 5 == 0)
{
       
        sum += i;
                }               
               
               
               
               
        }
       
        printf("1000以内的自然数,是3或5的倍数的%d和",sum);
        return 0;
       
       
       
}
答案不对,不知哪错了?
最佳答案
2019-5-30 07:56:11
>>> sum([x for x in range(1,1000) if x%3==0 or x%5==0])
1-999 的答案应该是 233168
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-29 21:35:34 | 显示全部楼层

回帖奖励 +1 鱼币

% 3 == 0&&i % 5 == 0  
或  ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-29 23:51:08 | 显示全部楼层
ba21 发表于 2019-5-29 21:35
% 3 == 0&&i % 5 == 0  
或  ||

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

使用道具 举报

发表于 2019-5-30 00:13:43 | 显示全部楼层
乔宽 发表于 2019-5-29 23:51
好像还是不太对

1000 以下

i<=1000 // 我觉得这不是1000 以下 我用屁股想都知道。
i<1000 // 我认为这都是1000 以下

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

使用道具 举报

发表于 2019-5-30 01:36:47 From FishC Mobile | 显示全部楼层
本帖最后由 bin554385863 于 2019-5-30 11:42 编辑
# include<stdio.h>
void main()
{
        int sum = 0, temp = 0;
        for (size_t i = 0 ; i < 1000 ; i++)
        {
                if (( i % 5 == 0 ) || ( i % 3 == 0 ) &&
(i % 15 != 0))
                {
                        sum = sum + i;
                 }
                 if (i % 15 == 0)
                 {
                         temp = temp + i;//多谢楼下提醒
                 }
        }
        printf ("sum = %d", sum + temp);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 01:45:09 From FishC Mobile | 显示全部楼层
你还是再去复习一遍逻辑运算符和数学运算符的优先级吧,如果记不住,就用小括号调整运算顺序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 05:08:35 | 显示全部楼层
这样统计有重合,15是3和5的倍数,++时15会被算两次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 07:56:11 | 显示全部楼层    本楼为最佳答案   
>>> sum([x for x in range(1,1000) if x%3==0 or x%5==0])
1-999 的答案应该是 233168
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-30 10:06:41 | 显示全部楼层
bin554385863 发表于 2019-5-30 01:45
你还是再去复习一遍逻辑运算符和数学运算符的优先级吧,如果记不住,就用小括号调整运算顺序。

好的,看来学的不扎实啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 10:33:08 From FishC Mobile | 显示全部楼层
其实我也记不住,→_→。万事不决,上小括号←_←
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-4 21:10:28 From FishC Mobile | 显示全部楼层
    for(int i = 0;i < 1000;i++)
        {
                if(i  %  3  ==  0 || i  %  5  ==  0)
{
这样就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-3 21:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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