描述
二进制数 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搜一下很多的。