您的位置:首页 > 其它

Number (Standard IO)

2016-07-17 14:23 344 查看


Description

  给出一个整数 ,你可以对 进行两种操作。
  1、将x变成4x+3
  2、将x变成8x+7
  问,最少通过多少次操作,使得x是1000000007的倍数?

题解:

  听人说什么4x+3的立方等于8x+7的平方,2(2x+1)+1=4x+3,2(4x+3)+1=8x+7~~然后就没有然后了,考试时我一心奔着50%(操作次数<=10)去暴力了,没想到。
代码:

var
a:int64;
b:real;
begin
readln(a);
while a mod 1000000007<>0 do
begin
a:=a mod 1000000007;
a:=a*2+1;
b:=b+1;
end;
b:=b/3;
if trunc(b)<>b then writeln(trunc(b)+1)
else writeln(b:0:0);
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  1781