PAT B1048 数字加密 (20 分)
本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。
输入格式:
输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。
输出格式:
在一行中输出加密后的结果。
输入样例:
1234567 368782971
输出样例:
3695Q8118
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
int main(){
string s1, s2;
getline(cin, s1);
s2 = s1.substr(s1.find(" ") + , s1.length() - s1.find(" "));
s1.erase(s1.find(" "), s1.length() - s1.find(" "));
while (s2.length() < s1.length()){
s2.insert(, "");
}
//cin >> s1 >> s2;
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
int res;
for (int i = ; i < s2.length() && i < s1.length(); i++){
if (i % == ){
res = (s1[i] - '' + s2[i] - '')%;
if (res < )s2[i] = '' + res;
else if (res == )s2[i] = 'J';
else if (res == )s2[i] = 'Q';
else if (res == )s2[i] = 'K';
}
else{
res = s2[i] - '' - s1[i] + '';
if (res < )res += ;
s2[i] = '' + res;
}
//cout << s2[i] << endl;
}
reverse(s2.begin(),s2.end());
cout << s2;
system("pause");
}
注意点:这题逻辑很简单,就是有一个坑会导致测试点2和6过不去,就是B比A短,要补0直到一样长。
PAT B1048 数字加密 (20 分)的更多相关文章
- PAT B1048 数字加密 (20)
AC代码 #include <cstdio> #include <cstring> #include <algorithm> #include <iostre ...
- PAT 1048 数字加密(20)(代码+思路)
1048 数字加密(20)(20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取 ...
- PAT Basic 1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- PAT 1048. 数字加密(20)
本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余--这里用J代表10.Q代表11.K代 ...
- 1048 数字加密 (20 分)C语言
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...
- PAT 乙级 1044 火星数字 (20 分)
1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...
- PAT 乙级 1048 数字加密(20) C++版
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
- PAT-乙级-1048. 数字加密(20)
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
随机推荐
- c# IEnumerable和IEnumerator枚举器
一 : IEnumerable 公开枚举数,该枚举数支持在非泛型集合上进行简单迭代. IEnumerable是可以枚举的所有非泛型集合的基接口,IEnumerable包含单个方法GetEnumerat ...
- Three.js开发指南---学习使用几何体(第五章)
一 基础几何体 1 二维图形:二维图形都是基于x和y轴构建的,即展示的形式就是他们都是“直立”的,如果希望这些二维图形躺下,则需要将几何体沿着x轴向后旋转1/4圈 mesh.rotation.x=-M ...
- VS C#文件的复制
/// <summary> /// 复制目录 /// </summary> /// <param name="OldDirectoryPath"> ...
- 初学HTML-3
标题标签:<h#>...</h#>,从h1到h6,字号由大变小. 段落标签:<p>...</p>,在浏览器中独占一行. 空格:" " ...
- python 生成器 和生成器函数 以及各种推导式
一.生成器 本质就是迭代器. 我们可以直接执⾏__next__()来执⾏ 以下⽣成器 一个一个的创建对象 创建生成器的方式: 1.生成器函数 2.通过生成器 表达式来获取生成器 3.类型转换(看 ...
- Android性能优化系列之APK终极瘦身策略
第1条:使用一套资源 这是最基本的一条规则,但非常重要. 对于绝大对数APP来说,只需要取一套设计图就足够了.鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录. 相对于多套资源,只使用7 ...
- [iOS] 列表滑动展开隐藏头部HeaderView
平常遇到大多数的带有列表的应用都会遇到这个场景:在列表顶端有一个Header,当向上滑动列表时,压缩header,向下滑动列表到头时,展开header.这种样式在例如微博,twitter这些展示动态的 ...
- go语言浮点数
package main import "fmt" func main() { var num,num1 float32 num = 10 num1 = 100 fmt.Print ...
- 腾讯云Centos安装nginx
使用的是腾讯云主机,选择的镜像如下: Centos7+ 64bit; nginx 1.7.12 1.安装依赖 yum -y install gcc gcc-c++ wget net-tools pcr ...
- Array常用方法总结
一.[常用语法] 1.1.数组的创建var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定 ...