pascal循环结构 求所有7的倍数和

[复制链接]
查看11 | 回复3 | 2013-4-30 10:50:01 | 显示全部楼层 |阅读模式
被lz召唤来了…………考虑到n<=10^9且时限为1s,不能直接循环1~n,那样会超时的由于7的倍数才能被整除,所以和为7+14+21+……,这是一个等差数列首项为7,公差为7,易得项数为n div 7,末项即为7+7*(n div 7-1)=7*(n div 7)所以直接可以套等差数列求和公式注意,要考虑在运算过程中的溢出,用qword来定义n(lz可以试一下n=10^9的情况,运算是大于longint的范围的)所以其他两位童鞋又错了……varn:qword;beginreadln(n);writeln((7+7*(n div 7))*(n div 7) shr 1);end.满意望...
回复

使用道具 举报

千问 | 2013-4-30 10:50:01 | 显示全部楼层
var
n,j;begin
read(n);
j:=n div 7;
writeln((j+1)*j div 2*7);end.思路:高斯求和设j=n div 7;由题可得,最终答案=7*1+7*2+7*3+...7*j=7*(1+2+3+4+...j)即为高斯求和P.S.:我是直接在这...
回复

使用道具 举报

千问 | 2013-4-30 10:50:01 | 显示全部楼层
var i,s,n:longint;;beginread(n);
for i:=1 to n do
if i mod 7=0 then s:=s+i;writeln(s);end.望楼主采纳,如果有什么问题可以问我...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行