关于C++的一个问题:二进制余数

描述
  二进制数 n 除以二进制数 m 的二进制余数是多少?

输入:
第一行输入一个二进制数 n(n > 0),n 的长度(二进制数的位数)≤200000。
第二行输入一个二进制数 m(m > 0),m 的长度(二进制数的位数)≤20。

输出:
输出 n 除以 m 的余数。

样例:
输入1:
1010101010
111000
输出1:
1010

输入2:
100
10
输出2:
0

这道题目确实不难,可是二进制数的位数的范围到达了20万,刚刚学习编程的我不太知道有什么办法能存储这么多数据,求高人指教!

#include<iostream>
using namespace std;

void dec2bin(int x)
{
    if(x>1) dec2bin(x/2);
    cout<<x%2;
}

int main()
{
    int n=0,m=0;
    char c=' ';
    
    while(c!='0'&&c!='1') c=getchar();
    while(c=='0'||c=='1') n=n*2+(c=='1'),c=getchar();
    
    while(c!='0'&&c!='1') c=getchar();
    while(c=='0'||c=='1') m=m*2+(c=='1'),c=getchar();
    
    dec2bin(n%m);
    cout<<endl;  
    
    return 0;   
}

 

这就是个大整数除法。csdn搜一下很多的。