55 条题解
-
-1
这题公式都写出来了,应该很简单了。这种算术方法在学scratch的时候讲过。 不说了,上代码。还是这句话代码中有些许错误,复制粘贴无法AC。
#include <bits/stdc++.h>//题解由hetao1098709提供,不要抄袭 using namespace std;//题解由hetao1098709提供,不要抄袭 int x,y;//题解由hetao1098709提供,不要抄袭 int zhenwuyu(int x,int y)//真无语这函数名全网估计只有我一个人在用。所以,大家就别直接粘了。 {//题解由hetao1098709提供,不要抄袭 if(y==0)//题解由hetao1098709提供,不要抄袭 {//题解由hetao1098709提供,不要抄袭 return x;//题解由hetao1098709提供,不要抄袭 }//题解由hetao1098709提供,不要抄袭 return zhenwuyu(y,x%y);//题解由hetao1098709提供,不要抄袭 }//题解由hetao1098709提供,不要抄袭 int main()//题解由hetao1098709提供,不要抄袭 {//题解由hetao1098709提供,不要抄袭 cin>>x>>y;//题解由hetao1098709提供,不要抄袭 cout<<zhenwuyu(x,y);//题解由hetao1098709提供,不要抄袭 }//题解由hetao1098709提供,不要抄袭
-
-1
题解版权属于 hetao3449355
禁止抄袭,违者必究
#include <iostream> using namespace std; int m, n; int gcd(int a, int b) { if( b == 0 ) { return a; } return gcd( b , a % b ); } int main() { cin >> m >> n; cout << gcd( m , n ); return 0; }
-
-1
P1002 辗转相除法
题目描述
辗转相除法,也称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。两个整数的最大公约数**(Greatest Common Divisor)**是能够同时整除它们的最大的正整数,缩写为gcd。辗转相除法基于如下原理:定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数.
这里没啥可说的,题目都说了
!!!用较大数除以较小数,再用出现的余数(第一余数)去除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。!!!
所以,做法一:
#include <iostream>//hetao3097453 using namespace std; int gcd(int a,int b) { if(b == 0) { return a; } else { return gcd(b,a % b); } } int main() { int a,b; cin >> a >> b; cout << gcd(a,b) << endl; return 0; }
20行,其实不是个好做法。
所以,做法二:
函数法
#include <iostream>//hetao3097453 #include <algorithm> using namespace std; int main() { int a,b; cin >> a >> b; cout << __gcd(a,b) << endl; return 0; }
八行
hetao3097453(bililili @ 一钩出站)
2023年3月3日
-
-1
思路
这道题关键在于阅读理解,抓住递归的核心就很容易AC。递归表达式和终止条件都在题面中直接给出。 $\\$(1)递归表达式:$gcd(m,n)=gcd(m,n$%$m)$ $\\$(2)终止条件:当$n==0$时,return m代码
#include<iostream> using namespace std; int n, m; int func(int n, int m) { if (m == 0) return n; return func(m, n % m); } int main() { cin >> n >> m; cout << func(n, m); }
-
-2
这道题也很简单的 废话少说,上代码:
#include <bits/stdc++.h> //本代码由4069983制作 using namespace std; //本代码由4069983制作 int m, n; //本代码由4069983制作 int gcd(int a, int b) //本代码由4069983制作 { //本代码由4069983制作 if( b == 0 ) //本代码由4069983制作 { //本代码由4069983制作 return a; //本代码由4069983制作 } //本代码由4069983制作 return gcd( b , a % b ); //本代码由4069983制作 } //本代码由4069983制作 int main() //本代码由4069983制作 { //本代码由4069983制作 cin >> m >> n; //本代码由4069983制作 cout << gcd( m , n )<<endl<<"本代码由4069983制作"; //本代码由4069983制作 return 0; //本代码由4069983制作 } //本代码由4069983制作
这段代码完全正确,但多出了一些不必要的备注。 不建议直接复制,仅供参考
信息
- ID
- 6
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 5370
- 已通过
- 2606
- 上传者