鱼C论坛

 找回密码
 立即注册
楼主: 欧拉计划

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

  [复制链接]
发表于 2016-7-23 18:19:10 | 显示全部楼层
n=0
Sum=0
while n<=1000:
    n+=1
    if n/3==int(n/3) or n/5==int(n/5):
        Sum+=n
    if n==999:
        print(Sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-2 16:22:06 | 显示全部楼层
我的答案:233168
  1. a = [x for x in range(1,1000)if x%5 == 0 or x%3 == 0]
  2. sum = 0
  3. for i in a:
  4.     sum += i
  5. print(sum)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-7 05:20:54 | 显示全部楼层
#include<stdio.h>
int main()
{
        int i,k=0;
       
        for(i=1;;i++)//这里判断所有3的倍数的和
        {
                k+=3*i;
                if(i*3>1000)
                {
                        break;
                }
        }
       
        int a,b=0;
        for(a=1;;a++)//这里是所有5倍数的和
        {
                b+=5*a;
                if(5*a>1000)
                {
                        break;
                }
        }
       
        printf("%d\n",k+b);
       
        return 0;
}



不知道对不对 我的答案是269340,出题的人没有写出正确答案吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 01:31:48 | 显示全部楼层
def sumn(n):
    s = 0
    i = 0
    while i < n:
        if i % 3 == 0 or i % 5 == 0:
            s += i
        i += 1
    return sum
print(sumn(1000))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-18 07:30:28 | 显示全部楼层
#include <stdio.h>

int main()
{
        unsigned int i,sum=0;
        for(i=0;i<1000;i++){
                if(i%3==0||i%5==0)sum+=i;
        }
        printf("%d",sum);
       
        return 0;
}
                if(i%3==0||i%5==0)sum+=i;
        }
        printf("%d",sum);
       
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-18 11:00:43 | 显示全部楼层
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int i;
  5.         long sum = 0;

  6.         for(i = 1; 3 * i <=1000 || 5 * i <= 1000; i++)
  7.         {
  8.                 if(3 * i % 5 != 0 && 3 * i <= 1000)
  9.                 {
  10.                         sum += 3 * i;
  11.                 }
  12.                 if(5 * i <= 1000)
  13.                 {
  14.                         sum += 5 * i;
  15.                 }
  16.         }

  17.         printf("\nsum = %ld\n", sum);
  18. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-20 10:42:23 | 显示全部楼层
无名侠 发表于 2015-7-8 17:54
错了,有的数同时是3和5的倍数。
比如 15

他那个用if不会有15的的倍数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-20 10:46:32 | 显示全部楼层
WilliamYu 发表于 2015-10-19 18:46
int sum, sum1, sum2, sum3, a, b, c;
a = 999 / 3;
b = 999 / 5;

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

使用道具 举报

发表于 2016-8-22 14:25:15 | 显示全部楼层
  1. num = 0
  2. for i in range(1000):
  3.     if i%3 == 0 or i%5 == 0:
  4.         num = num + i
  5.         
  6. print(num)
  7. >>> 233168
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-2 12:00:26 | 显示全部楼层
  1. list1 = []

  2. for i in range(1,1000):
  3.       if not (i % 5) or not (i % 3):
  4.             list1.append(i)


  5. print(sum(list1))

  6.             
复制代码

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

使用道具 举报

发表于 2016-9-6 16:09:56 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.     int i, s = 0;
  6.     for(i = 1; i < 1000; i++)
  7.     {
  8.         if(i % 3 == 0 || i % 5 == 0)
  9.         {
  10.             s += i;
  11.         }
  12.     }
  13.     printf("%d",s);

  14.     getch();
  15.     return 0;
  16. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-9 09:54:48 | 显示全部楼层
count = 0
for r in range(1000):
    if r%3==0 or r%5==0:
        count += r

print(count)

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

使用道具 举报

发表于 2016-9-26 21:35:17 | 显示全部楼层
  1. final int END = 1000;
  2. int sum = 0;
  3. for(int i = 15; i <= END; i += 15) {
  4.     sum += i * 7 - (3 + 6 + 9 + 12 + 5 + 10);
  5. }
  6. for(int i = (END - END % 15) + 1; i <= END; i++) {
  7.     if(i % 3 == 0 || i % 5 == 0) {
  8.         sum += i;
  9.     }
  10. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-27 10:40:03 | 显示全部楼层
  1. public class MultiplesOf3and5
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int sum = 0;
  6.                 for(int i = 0;i <= 1000;i++)
  7.                 {
  8.                         if(i%3==0 || i%5==0)
  9.                         sum += i;
  10.                 }
  11.                
  12.                 System.out.println("1000以内的3或5的倍数的数字之和为:" + sum);
  13.         }
  14. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-29 10:44:01 | 显示全部楼层
  1. def euler(number):
  2.     return sum([x for x in range(number) if not x%3 or not x%5])

  3. if __name__ == '__main__':
  4.     print(euler(1000))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-20 10:11:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-26 16:25:42 | 显示全部楼层
本帖最后由 joker11111 于 2016-10-26 17:02 编辑
  1. //找1000以下的,属于3或5的倍数的数字之和
  2. #include <windows.h>
  3. #include <iostream>
  4. #include <time.h>

  5. using namespace std;

  6. long int fun(int m);
  7. int main()
  8. {
  9.         clock_t start, finish;
  10.         double totaltime;
  11.         start = clock();

  12.         int m = 1000;
  13.         cout << " 1000以下属于3或5的倍数的数字之和为:" << fun(m) << endl;

  14.         finish = clock();
  15.         totaltime = (double)(finish - start) / CLOCKS_PER_SEC;
  16.         cout << "此程序的运行时间为" << totaltime << "秒" << endl;
  17.         system("pause");
  18.         return 0;
  19. }

  20. long int fun(int m)
  21. {
  22.         long int s = 0,i = 0;
  23.         while (i < m)
  24.         {
  25.                 if (0 == i % 3 || 0 == i % 5)
  26.                         s = s + i;
  27.                 i++;
  28.         }
  29.         return s;
  30. }
复制代码


运行结果为:233168
运行时间:0.005秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-28 10:28:38 | 显示全部楼层
  1. var i = 1001, sum=0;
  2. while(--i){
  3.         if(!(i%3 && i%5)){
  4.                 sum += i;
  5.         }
  6. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-2 16:29:56 | 显示全部楼层
  1. Sum = 0
  2. for i in range(1000):
  3.         if i%3 == 0 or i%5 == 0:
  4.                 Sum += i
  5. print('The sum is %d' %Sum)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-6 21:19:43 | 显示全部楼层
  1. """
  2. 欧拉计划
  3. 10以下的自然数中,属于3或5的倍数的数字有3,5,6,9,它们之和为23
  4. 找出1000以下的自然数中,属于3或5倍数的所有数字之和
  5. """
  6. def exactNum(m,n,num):
  7.     if num%m==0 or num%n==0:
  8.         return True
  9.     else:
  10.         return False
  11. sum=0
  12. for i in range(1,1000):
  13.     if exactNum(3,5,i):
  14.         sum=sum+i
  15. print("1000以内整数中属于3或5倍数的所有数字之和为:"+str(sum))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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