17倍
题目大意:
有一个二进制数,求它的17倍
原题:
题目描述:
在了解做软件开发可能赚很多的钱之后,农夫约翰也开了一家小的软件公司为客户写程序。约翰的第一个任务对他来说看起来相当简单:输入一个数N,然后输出17*N的值。但是现在,客户又变更了一个条件,输入的N是一个二进制数,输出的值也要是二进制表示的。
现在请帮助约翰完成这个任务。
输入
一个二进制表示的数N。
输出
二进制表示的17N。
输入样例
10110111
输出样例
110000100111
说明
数据范围:N的位数不超过1000位。
说明:10110111相当于十进制的183,于是183*17=3111,二进制形式是110000100111 。
解题思路:
直接用数组来存二进制数,然后计算
代码:
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
int len,t,k,a[1200];
string str;
int main()
{cin>>str;len=str.size();for (int i=1;i<=len;++i)a[i]=str[len-i]-48;//存入for (k=1;k<=len||t;++k)//如果有进位就继续{a[k]=a[k]*17+t;//计算t=a[k]/2;a[k]%=2;}for (int i=k-1;i>0;--i)//输出putchar(a[i]+48);
}