PTA C++二进制数转十进制数源程序?

自己写了一个C++程序,在PTA上测试最后一个测试点总是无法通过,不知道该怎么改,请大佬帮忙看一下:

#include<iostream>
#include<cmath>
using namespace std;
int main(void){
    int n,sum(0);
    int m;
    cin>>n;
    for(int i=0;n>0;i++)
    {
        m=n%10;
        n/=10;
        sum=sum+m*pow(2,i);
    }
    cout<<sum;
return 0;
}

测试截图:

大概知道错在哪里,但是不会改,请求帮忙,谢谢!

我也觉得你这个没啥大问题但是该代码并未对输入的数是否为二进制数进行检查,如果输入的数不是二进制数,那么结果将会是错误的

我也觉得你这个没啥大问题但是该代码并未对输入的数是否为二进制数进行检查,如果输入的数不是二进制数,那么结果将会是错误的