用C++求a与b的最大公约数,用C++实现将二进制转换为十进制
时间: 2024-03-10 10:48:17 浏览: 26
好的,您的第一个问题是:
用C++求a与b的最大公约数。
可以使用欧几里得算法(又称辗转相除法)来求最大公约数。其原理是,两个数的最大公约数等于其中较小的数与两数相除余数的最大公约数。具体实现代码如下:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
int main() {
int a, b;
cout << "请输入两个整数:";
cin >> a >> b;
cout << "它们的最大公约数是:" << gcd(a, b) << endl;
return 0;
}
```
接下来是您的第二个问题:
用C++实现将二进制转换为十进制。
二进制转十进制的方法是按权展开法,即将二进制数按权展开,然后相加。具体实现代码如下:
```c++
#include <iostream>
using namespace std;
int binToDec(string bin) {
int dec = 0;
int len = bin.length();
for (int i = 0; i < len; i++) {
dec += (bin[i] - '0') * pow(2, len - i - 1);
}
return dec;
}
int main() {
string bin;
cout << "请输入一个二进制数:";
cin >> bin;
cout << "它的十进制表示是:" << binToDec(bin) << endl;
return 0;
}
```
以上是两个问题的解答,希望能对您有所帮助。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)