我的代码:
#include <iostream>
#include<cmath>
using namespace std;
int main() {
int t;
cin>>t;
for(int k=1;k<=t;k++)
{
int base=2,n,n1,d,nd=0,i=0;//n=binary no.,nd=decimal quivalent of n
cin>>n;//binary no.
n1=n;
while(n1>0)
{
d=n1%10;
nd=nd+(d*pow(2,i));
i++;
if(i<16)//since there can be max 16 digits, power will go till 15
n1=n1/10;
}
cout<<nd<<endl;
}
return 0;
}
我的输出:错误的答案。 !!!!!!!
可能您的代码在多个测试用例(TC)中无法正常工作。
您的代码失败的第一个测试用例:
输入:11111111111
其正确的输出是:2047
您的代码的输出为:2559
原始问题:二进制数到十进制数
给出一个二进制数B,打印其等效的十进制数。
输入:输入的第一行包含一个整数T,它表示测试用例的数量。 T测试用例的说明如下。每个测试用例都包含一个二进制数B。
输出:对于每个测试用例,在新行中,在新行中打印每个十进制数。
约束:1 <= T <= 1001 <=二进制数字<= 16
示例:输入:210001000101100输出:13644
我的代码:#include
修改的代码: