| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
真有。。。太恶心了In Reply To:输入有空行,需要过滤下。。。 Posted by:HEU_Archer at 2011-06-18 16:51:56 #include <iostream>
#include <string>
using namespace std;
long long int val(char c){
switch(c){
case '|': return 1;
case 'n': return 10;
case '9': return 100;
case '8': return 1000;
case 'r': return 10000;
default: return 0;
}
}
long long int parse(string s){
long long int res = 0;
long long int len = s.length();
for(int i = 0; i < len; i++){
res += val(s[i]);
}
return res;
}
string toString(long long int n){
string res;
bool first = 1;
long long int n1=n%10,n10=(n/10)%10,n100=(n/100)%10,n1000=(n/1000)%10,n10000=(n/10000)%10;
if(n1){
while(n1--) res+="|";
first=0;
}
if(n10){
if(!first)res+=" ";
while(n10--) res+="n";
first=0;
}
if(n100){
if(!first)res+=" ";
while(n100--) res+="9";
first=0;
}
if(n1000){
if(!first)res+=" ";
while(n1000--) res+="8";
first=0;
}
if(n10000){
if(!first)res+=" ";
while(n10000--) res+="r";
}
return res;
}
int main() {
string sa, sb;
while(getline(cin,sa)){
long long int a=parse(sa);
if(!a)continue;
getline(cin,sb);
long long int b=parse(sb);
long long int start = 1;
while(start<=b){
string sstart = toString(start);
string sprod = toString(start*a);
int l = sstart.length();
cout << sstart;
if((start & b) == start){
cout << " *";
for(int i = 0; i < 32-l; i++) cout << " ";
}
else{
for(int i = 0; i < 34-l; i++) cout << " ";
}
cout << sprod << " " << endl;
start <<= 1;
}
cout << "The solution is: " << toString(a*b) << " " << endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator