吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2955|回复: 8
收起左侧

[其他转载] 【傲气每日一练 第 2 期】1~123456

[复制链接]
骨子里的傲气 发表于 2016-4-23 09:14
请问 1~123456 之间所有 7 的倍数和末尾含 7 的数的和是?
答案在下方


















































































[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
	long i, j;
	j = 0;
	for ( i = 0; i <= 123456; ++i )
	{
		if ( i % 7 == 0 || i % 10 == 7 )
			j = j + i;
	}
	;
	printf( "%d\n", j );
	
	system( "pause" );
	return(0);
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

LaoJII 发表于 2016-4-23 09:34
[Python] 纯文本查看 复制代码
#coding=utf-8


def demo():
	"""calculate the answer"""
	sum=0
	t=range(1,123457)
	for i in t:
		if i%7==0 or i%10==7:
			sum+=i
	print sum

demo()
LaoJII 发表于 2016-4-23 10:27
[JavaScript] 纯文本查看 复制代码
/*
calcucate the answer
 */

var sum=0;
function demo(k){
   if (k%7==0||k%10==7) {
		sum+=k;
	}
}

for (var i =1; i <=123456; i++) {
		demo(i);	
}

console.log(sum);
wangqiustc 发表于 2016-4-23 11:04
2809818948 发表于 2016-4-23 12:23
依旧来个js版
[JavaScript] 纯文本查看 复制代码
//根据规律可以减少循环次数,提高效率
function dowork(max,b){
 if(b>9){return 'none';}
//获取基数的倍数存在次数
 var p = parseInt(max/7) + (max % 7 ==0?0:1);
 t=0; 
 for(var i=1;i<p;i++){
    t+=b*i;
 }
//小于10的基数,每加10会存在一次,获取次数
 p = parseInt(max / 10);
 t2=0; 
 for(var i=0;i<p;i++){ 
   if(i%7!=0)
   t2 += b+10*i
 }
 return t+ t2;
}
dowork(123456,7)
//1741821309
LaoJII 发表于 2016-4-23 13:29
2809818948 发表于 2016-4-23 12:23
依旧来个js版
[mw_shl_code=javascript,true]
//根据规律可以减少循环次数,提高效率

不错的想法。你最后忘了输出了。console.log(dowork(123456,7));
阿志 发表于 2016-4-25 10:34
太神拉
小白表示看不懂
學習
Suny 发表于 2016-4-26 08:54 来自手机
楼主真厉害,js,c,java倒是可能写的出这个
沧晓 发表于 2016-4-30 07:26
厉害,膜拜
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 08:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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