6 条题解
-
3
#include<bits/stdc++.h> using namespace std; double a,b; int ansInt; // 化为整型后的a/b char chu; // chu是除,没什么用,用来抵消掉题目里那没用的/而已 int main(){ ios::sync_with_stdio(false); // 输入输出加速 cin.tie(0); cout.tie(0); cin>>a>>chu>>b; // 输入abcd ansInt=a/b; // 向下取整结果 if(a/b==ansInt){ // 如果a/b是不是整数,那么必然!=ansInt cout<<ansInt; // 符合条件直接输出就行了 }else{ // __gcdd(x,y)为C++算法库内置的计算最小公约数函数 注意前面是两条英文下划线 int gcdd=__gcd(int(a),int(b)); // 计算分子和分母最小公约数 cout<<a/gcdd<<"/"<<b/gcdd; } return 0; }
-
2
#include <iostream> using namespace std; int a , b , d; char c ; int gcd(int x , int y){//辗转相除法求最大公因数 if(y == 0) return x ; return gcd(y,x%y); } int main(){ cin >> a >> c >> b ;//输入,s存储'/' d = gcd(a,b);//赋值比再算一次省时间(虽然也没省多少) cout << a/d;//输出分子 if(b != d)//若b == d 则可以整除,不必输出,反之亦然 cout << '/' << b/d;//输出分数线+分母 return 0 ; }
-
1
#include <iostream>//懒得用万能头~~~ using namespace std; int a , b; char s; bool f; int main() { cin >> a >> s >> b; int x = a , y = b; if(a % b == 0)//特殊情况 { cout << a / b; return 0; } if(a == 1 || b == 1) cout << "1/1"; while(1)//t为最大公因数 { int t = a % b; if(t == 0) { break; } else { a = b; b = t; } } if(b > 1) { cout << x / b << "/" << y / b; } else { cout << x << "/" << y; } return 0; }
希望对大家有帮助
-
0
😄 解决这个题分三步:
-
字符串分割出分子和分母
-
求出最大公约数,进行约分(经典辗转相除法)
-
输出最简分数(注意判断分母为1的情况) 先来看第一步:
string s; cin >> s; for (int i = 0; i < s.size(); i++) { if (s[i] == '/') { a = stoi(s.substr(0, i)); b = stoi(s.substr(i+1, s.size() - i)); } }
接着第二步就是求最大公约数:
// 辗转相除法求最大公约数 int CommFactor(int m, int n) { int z = n; while (m % n != 0) { z = m % n; m = n; n = z; } return z; }
然后第三步判断并输出:
if (b == 1 || b / CommFactor(a, b) == 1) { cout << a / CommFactor(a, b); } else { cout << a / CommFactor(a, b) << '/' << b / CommFactor(a, b); }
-
-
-4
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
-
-5
#include<bits/stdc++.h> using namespace std; double a,b; int ansInt; // 化为整型后的a/b char chu; // chu是除,没什么用,用来抵消掉题目里那没用的/而已 int main(){ ios::sync_with_stdio(false); // 输入输出加速 cin.tie(0); cout.tie(0); cin>>a>>chu>>b; // 输入abcd ansInt=a/b; // 向下取整结果 if(a/b==ansInt){ // 如果a/b是不是整数,那么必然!=ansInt cout<<ansInt; // 符合条件直接输出就行了 }else{ // __gcdd(x,y)为C++算法库内置的计算最小公约数函数 注意前面是两条英文下划线 int gcdd=__gcd(int(a),int(b)); // 计算分子和分母最小公约数 cout<<a/gcdd<<"/"<<b/gcdd; } return 0; }
- 1
信息
- ID
- 1276
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 226
- 已通过
- 103
- 上传者