题目大意
输入一个二进制数,求它的17倍(二进制输出)
此二进制数的位数为n,n<1000
思路
由于位数很大,所以一位一位地乘,然后%2。(类似高精度乘法?)
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
string s;
long long l,a[1050],j,i;
int main(){
cin>>s; //字符串读入
l=s.size();
for(i=0;i<l;++i)
a[l-i]=(s[i]-48)*17; //乘上
for(i=1;i<=l||j;++i){ //进位
a[i]=a[i]+j;
j=a[i]/2;
a[i]=a[i]%2;
}
if(a[i]==0) --i;
for(i;i;--i) printf("%d",a[i]); //输出。
}