码之初——千里码

无意间看到群里有人发了这个网站,感觉特别不错,对这个模式产生了很大的兴趣,希望以后坚持下来,把自己关于这里的每道题的疑问,思想过程,做法和最后收获写到这里。

大家共勉

作为一位coder,首先需要掌握一门编程语言以及数学常识。我们希望你现在已经掌握了一门编程语言的基本用法。

第2333个能被2或者被3整除的正整数是多少?

被2或者被3整除的正整数依次是:2,3,4,6,8,9,10,12,14,15,16,18…。

起初第一反应是用python程序来解决 那么有了以下程序

程序1:

i = 1
count = 0
while 1:
    if i % 2 == 0 or i % 3 == 0:
        count += 1
        if count == 2333:
            print i
            break
    i += 1
//3500

另外看到了另一个python同学贴的代码 感觉更加靠谱

程序2:

这个同学的名字是:stephen_code

def foo3(index):
    quotient, reminder = divmod(index, 4)
    addend_dic = {1: 2, 2: 3, 3: 4}
    return quotient * 6 + addend_dic[reminder]
print foo3(2333)

上题的思路就是讨论区第一的思路

同学 :shinian

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17 18

上面加粗斜体的数字就是 能被2或者3整除的…每6个中有4个啦

写成代码的话也可以写成下面这种:

程序3:

同学:senghoo

plus_dict = {0: 0, 1: 2, 2: 3, 3: 4}

n = 2333

print (n / 4) * 6 + plus_dict[n % 4]

其实和程序2 是异曲同工。

那么我们仔细思考后发现这个题目借助这个思路完全可以用笔做出来

看了下评论区的大虾们有用java的,c的,js的,还有用shell的,php的。总之思路都差不多。大家如果还有更好的想法可以在下面贴出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值