Problem1(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倍数的和。

二.问题分析

     根据题目要求,解决问题的思想比较简单,可以通过循环快速地计算出结果。但是,需要注意地是:

        对于小于1000的所有的自然数,它们可以分为四大类:

                  (1).既不是3的倍数,又不是5的倍数;

                  (2).虽是3的倍数,但不是5的倍数;

                  (3).虽是5的倍数,但不是3的倍数;

                  (4).既是3的倍数,又是5的倍数.

       显然,(2).(3).(4)三部分组成的数集才是题目要求的数集.

三.问题解决

     1)Python解决问题  
#-*- coding:utf-8 -*-
#Multiples of 3 and 5   Python2.7  Windows 10
import time

def sumThreeAndFiveTimes(num):
	sum=0
	for i in xrange(1,num,1):
		if i%3==0 or i%5==0:
			sum+=i
	return sum

if __name__=="__main__":
	num=input("Please input a positive number :")
	start=time.clock() #计时开始
	print "The result is %d."%sumThreeAndFiveTimes(num) #获得所求结果
	end=time.clock() #计时结束
	print "Time consumed is %f s."%(end-start) #输出计算秒数
        输出结果:

四.问题总结

     本问题的逻辑简单明了,但是在编程过程中需要思考其中的小细节,避免产生不必要的漏洞。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值