Bon neuman loves binary

#include
#include
using namespace std;

int No_Of_Digits(int n){
int count=0;
while(n>0){
count++;
n/=10;
}
return count;
}
int Decimal_Binary(int n){
int sum=0,temp,b,c;

int d=No_Of_Digits(n);
for(int i=0 ; i<d ; i++){
        
    temp=n%10;
    b=std::round(pow(2,i));
    c=temp*b;
    sum+=c;
    n/=10;
}
return sum;

}
int main(){
int a;
cin>>a;
for(int i=1 ; i<=a ; i++){
int n;
cin>>n;
cout<<Decimal_Binary(n)<<endl;
}

return 0;

}Why is this not working?