链接:codeforces 527A
题意:一张纸,以最小边折正方形,余下的再折,直到剩下的为正方形为止,求需要对折几次。
思路:因为给的数据有10^12,所以直接求解必然会超时。可以先求出a是b的倍数,再进行a%b。
#include <stdio.h>
int main()
{
__int64 a,b,temp,ans;
while(scanf("%I64d%I64d",&a,&b)!=EOF)
{
ans=0;
while(1)
{
if(a<b){temp=a;a=b;b=temp;} //如果b比a大,就交换
if(a==b)break; //如果a=b,则计算结束,跳出循环
if(a%b==0){ans+=a/b;break;} //如果b能整除a,计算也结束
ans+=a/b;
a=a%b; //剩余的边长
}
printf("%I64d\n",ans);
}
return 0;
}
本文介绍了CodeForces 527A题目中的折纸问题,该问题要求计算将矩形纸张连续折叠成正方形所需的次数。通过使用循环和条件判断,文章提供了一个高效的解决方案,避免了对于大数据输入时可能出现的时间超限问题。
106

被折叠的 条评论
为什么被折叠?



