修改了一下之前人提交的翻译,请求将原翻译撤下:
高桥君学习了欧几里得算法,他很好奇它能以多快的速度运行。
因此,他写了以下代码。
#include <stdio.h>
int counter = 0;
int gcd(int a, int b) {
if (b == 0) return a;
counter++;
return gcd(b, a%b);
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
gcd(a, b);
printf("%d\n", counter);
}
这个代码输入两个整数,然后用欧几里得计算它们的 gcd,然后输出它递归了多少次的代码。 你想让这个程序输出各种各样的值。
具体来说,输入一个 K,输出一组可以使得这个程序的输出为 K 的 A、B。
一个正整数 K。
一行,两个正整数 A 和B。
但是,必须满足 1≤A,B≤109。
对于 30% 的数据,1≤K≤10;
对于 100% 的数据,1≤K≤40。
只输出其中一种可能的解即可。
## 题目描述
高桥君学习了欧几里得算法,他很好奇它能以多快的速度运行。
因此,他写了以下代码。
\```cpp
#include <stdio.h>
int counter = 0;
int gcd(int a, int b) {
if (b == 0) return a;
counter++;
return gcd(b, a%b);
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
gcd(a, b);
printf("%d\n", counter);
}
\```
这个代码输入两个整数,然后用欧几里得计算它们的 $\gcd$,然后输出它递归了多少次的代码。 你想让这个程序输出各种各样的值。
具体来说,输入一个 $K$,输出一组可以使得这个程序的输出为 $K$ 的 $A$、$B$。
## 输入格式
一个正整数 $K$。
## 输出格式
一行,两个正整数 $A$ 和$B$。
但是,必须满足 $1\le A,B\le 10^9$。
## 说明\提示
对于 $30\%$ 的数据,$1\le K \le 10$;
对于 $100\%$ 的数据,$1\le K \le 40$。
只输出其中一种可能的解即可。
(题目中代码框的"```"我加了反斜杠避免识别,烦请管理员谅解)