社区讨论

求助

灌水区参与者 2已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@lo93n2qd
此快照首次捕获于
2023/10/28 05:02
2 年前
此快照最后确认于
2023/10/28 05:02
2 年前
查看原帖
CPP
正方形分割(cut)
问题描述:
给定一个长方形,把它分割成若干个正方形,求最少能分成几个?
输入格式:
第一行为正整数t(≤50),表示数据组数;接下来t行,每行两个正整数a和b,表示长方形的长和宽,b<a<109。
输出格式:
对于每组数据,输出分割出正方形的最少数目。
输入样例	
2
10 7
100000000 1	
输出样例
6
100000000
这是我写的代码:
CPP
#include<stdio.h>
#pragma GCC optimize(2)
void work(){
    int ans=1,a,b;
    scanf("%d%d",&a,&b);
    if(b>a){
    	int c=a;
		a=b,b=c;
	}
	if(!(a%b)){
		printf("%d\n",a/b);
		return ;
	}
	else{
		a%=b;
		if(a>b){
    		int c=a;
			a=b,b=c;
		}
		while(a&&b){
			ans+=b/a;
			b-=(b/a)*a;
			if(a>b){
    			int c=a;
				a=b,b=c;
			}
		}
	}
	printf("%d\n",ans);
	return ;
}
int main(){
    freopen("cut.in","r",stdin);
    freopen("cut.out","w",stdout);
    int t;
    scanf("%d",&t);
    while(t--) work();
    return 0;
}
为啥大样例过不了?
CPP
大样例输入
2
314 6563
23165 96231146
大样例输出
41
4253
求助

回复

10 条回复,欢迎继续交流。

正在加载回复...