gpt4 book ai didi

c++ - 随机数据测试

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:49 25 4
gpt4 key购买 nike

我在大学做家庭作业 - 程序需要 2 个二进制数并写出它们的和。我的大学使用一种特殊的软件来测试家庭作业,其中一项测试是“随机数据测试”,我的程序无法通过,有人可以给我一些提示吗?程序:

#include <iostream>
#include <string>
using namespace std;
int B2D(string number)
{
int result = 0, pow = 1;
for ( int i = number.length() - 1; i >= 0; --i, pow <<= 1 )
result += (number[i] - '0') * pow;

return result;
}
string D2B(int number)
{
if ( number == 0 ) return "0";
if ( number == 1 ) return "1";

if ( number % 2 == 0 )
return D2B(number / 2) + "0";
else
return D2B(number / 2) + "1";
}
int main()
{
string input_number;
string input_number2;
cout << "Write 2 binary numbers" << endl;
if(!(cin >> input_number >> input_number2))
{
cout << "Wrong entry." << endl;
return 0;
}
for(unsigned int i=0;i<input_number.size();i++){
if((input_number[i] != '1') && (input_number[i] != '0'))
{
cout << "Wrong entry." << endl;
return 0;
}
}
for(unsigned int i=0;i<input_number2.size();i++){
if((input_number2[i] != '1') && (input_number2[i] != '0'))
{
cout << "Wrong entry."<<endl;
return 0;
}
}
int result = B2D(input_number);
int result2 = B2D(input_number2);
int result3 = result + result2;
string result4 = D2B(result3);
cout << "Result: " << result4 << endl;
return 0;
}

最佳答案

当二进制数非常高时,问题似乎出在 B2D 函数中。如何解决?由于 pow <<= 1

,我不能使用 double

关于c++ - 随机数据测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com