PAT.1048 数字加密
2017-05-08 18:10
155 查看
1.当B的长度大于A时,直接将B前面的复制过去
2.当A的长度大于B时,B前面要补0,并且要判断奇数位偶数位
3.当A为10000,B为1时,要判断为0时应该打印0,最后打印10001,之前没判断直接A的那位数变负数再加10,所以会出问题
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char a[105],b[105],c[105];
cin >> a >> b;
int i = strlen(a)-1;
int j = strlen(b)-1;
//cout << i << j<<endl;
int count=0;
while(i>=0&&j>=0)
{
if(count % 2 == 0)
{
int x = (a[i]-'0' + b[j]-'0')%13;
// cout << " x " <<x << endl;
switch(x)
{
case 10:c[count++] = 'J';
break;
case 11:c[count++] = 'Q';
break;
case 12:c[count++] = 'K';
break;
default:c[count++] = x+'0';
break;
}
i--;
j--;
// cout << "count "<<count<<endl;
}
else
{
int y;
y = (b[j]-'0') - (a[i] - '0');
if(y<0)
y += 10;
// cout << " " << y << endl;
c[count++] = y + '0';
i--;
j--;
}
}
while(j>=0)
{
c[count++] = b[j];
j--;
}
while(i>=0)
{
if(count % 2 == 0)
{
c[count++] = a[i];
}
else
{
if(a[i]=='0')
c[count++] = a[i];
else
c[count++] = -(a[i]-'0')+10+'0';
}
i--;
}
for(i=strlen(c)-1;i>=0;i--)
cout << c[i];
cout << endl;
}
2.当A的长度大于B时,B前面要补0,并且要判断奇数位偶数位
3.当A为10000,B为1时,要判断为0时应该打印0,最后打印10001,之前没判断直接A的那位数变负数再加10,所以会出问题
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char a[105],b[105],c[105];
cin >> a >> b;
int i = strlen(a)-1;
int j = strlen(b)-1;
//cout << i << j<<endl;
int count=0;
while(i>=0&&j>=0)
{
if(count % 2 == 0)
{
int x = (a[i]-'0' + b[j]-'0')%13;
// cout << " x " <<x << endl;
switch(x)
{
case 10:c[count++] = 'J';
break;
case 11:c[count++] = 'Q';
break;
case 12:c[count++] = 'K';
break;
default:c[count++] = x+'0';
break;
}
i--;
j--;
// cout << "count "<<count<<endl;
}
else
{
int y;
y = (b[j]-'0') - (a[i] - '0');
if(y<0)
y += 10;
// cout << " " << y << endl;
c[count++] = y + '0';
i--;
j--;
}
}
while(j>=0)
{
c[count++] = b[j];
j--;
}
while(i>=0)
{
if(count % 2 == 0)
{
c[count++] = a[i];
}
else
{
if(a[i]=='0')
c[count++] = a[i];
else
c[count++] = -(a[i]-'0')+10+'0';
}
i--;
}
for(i=strlen(c)-1;i>=0;i--)
cout << c[i];
cout << endl;
}
相关文章推荐
- PAT 乙级 1048. 数字加密(20) Java版
- Java - PAT - 1048. 数字加密(20)
- PAT 1048. 数字加密(20)
- PAT-B 1048. 数字加密
- 1048. 数字加密(20)-浙大PAT乙级真题java实现
- PAT 乙级 1048. 数字加密(20)
- PAT乙级 1048. 数字加密(20)
- 【PAT】1048. 数字加密(20)
- PAT 1048. 数字加密(20)
- PAT 1048. 数字加密(20)
- pat乙级1048. 数字加密(20)
- 数字加密(PAT-1048)
- PAT乙级1048 数字加密
- PAT:B1048. 数字加密(16/20)
- PAT(basic level) 1048 数字加密(20)
- PAT(Basic Level)_1048_数字加密
- PAT-乙级-1048. 数字加密(20)
- PAT 乙级 1048. 数字加密(20)
- 1048. 数字加密(20)PAT乙级
- PAT 1048. 数字加密(20)