设为首页 加入收藏

TOP

HDU 4952 Number Transformation (找规律)
2015-07-20 17:54:31 来源: 作者: 【 】 浏览:3
Tags:HDU 4952 Number Transformation 规律

?

进行K次操作,第i次操作是把X变成不小于X的最大整数,并且X是i的倍数。经过K次操作后就X的值。

红果果的暴力是会超时的。暴力打表发现在12000之后出现规律。之后的两两之间差恒定了。

?

?

?

AC代码:

?

?

#include
  
   
#define ll __int64
const ll maxn=120000;

int main()
{
	ll i;
	ll x,k;
	int cas=1;
	while(scanf(%I64d %I64d,&x,&k)!=EOF)
	{
		if(x==0 && k==0)
			break;
		printf(Case #%d: ,cas++);
		if(k<=maxn)
		{
			for(i=1;i<=k;i++)
				if(x%i!=0) x=i*(x/i+1);
			printf(%I64d
,x);
		}
		else
		{
			ll y;
			for(i=1;i<=maxn;i++)
				if(x%i!=0) x=i*(x/i+1);
			y=i*(x/i+1);
			printf(%I64d
,x+(k-maxn)*(y-x));
		}
	}

	return 0;
}
  


?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3282 Ferry Loading IV(简单.. 下一篇[ThinkingInC++]21、关于C的习题..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: