PAT 乙级 1048 数字加密(20) C++版
1048. 数字加密(20)
本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。
输入格式:
输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。
输出格式:
在一行中输出加密后的结果。
输入样例:
1234567 368782971
输出样例:
3695Q8118 思路:先将短的字符串头部添加字符0,知道两个字符串相等长度为止,只是为了后续操作更加简便,再将两个字符串分别以字符的形式读入对应的字符栈,此时两个栈的长size一定相同
,用栈的一个好处就是因为个位是最后一位,栈先进后出,正好满足,然后将处理后的结果存入一个新的栈,该栈也是为了从高位开始输出,代码如下,代码行数可以更少,但是我写的方式是为了让main函数更加简洁
// 1048.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream>
#include<stack>
#include<string>
#include<typeinfo> using namespace std; //函数声明
void show_result(stack<char>& s1, stack<char>& s2);
void Push(stack<char>& s, string str);
void put_zero(stack<char>& s1, stack<char>& s2, const string& str1, const string& str2); int main()
{
string str1, str2;
stack<char> s1, s2; cin >> str1 >> str2; //将长度小的字符串对应的栈先填入字符0,方便后续计算
put_zero(s1, s2, str1, str2); //将字符串入对应的栈
Push(s1, str1);
Push(s2, str2); //程序实现并打印
show_result(s1, s2); return ;
} //将长度小的字符串对应的栈先填入字符0
void put_zero(stack<char>& s1, stack<char>& s2, const string& str1, const string& str2)
{
int len = str1.length() - str2.length(); if (len>)
{
for (int i = ; i < len; ++i)
s2.push('');
}
else
{
for (int i = ; i < -len; ++i)
s1.push('');
}
} //将字符串入栈
void Push(stack<char>& s, string str)
{
int i; for (i = ; str[i] != '\0'; ++i)
s.push(str[i]); } //程序实现
void show_result(stack<char>& s1, stack<char>& s2)
{
int i,len=s1.size();
stack<char> s;
int a, b,temp;
char Arr[] = { '', '', '', '', '', '', '', '', '', '', 'J', 'Q', 'K' }; for (i = ; i < len; ++i)
{
a = static_cast<int>(s1.top() - );
b = static_cast<int>(s2.top() - ); if (i & )//偶数位
temp=(b-a) >= ? b-a : b-a+;
else//奇数位
temp = (a + b) % ; s.push(Arr[temp]);//将新得到的字符存入新的栈中 s1.pop(), s2.pop();//栈顶元素出栈
} while (!s.empty())//处理后的栈输出
{
cout << s.top(); s.pop();
} cout << endl;
}
PAT 乙级 1048 数字加密(20) C++版的更多相关文章
- PAT 乙级 1019 数字黑洞 (20) C++版
1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...
- PAT 乙级 1012 数字分类 (20) C++版
1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...
- PAT 乙级 1048.数字加密 C++/Java
题目来源 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 ...
- PAT Basic 1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- PAT 1048 数字加密(20)(代码+思路)
1048 数字加密(20)(20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取 ...
- PAT-乙级-1048. 数字加密(20)
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
- PAT(B) 1048 数字加密(Java)字符串
题目链接:1048 数字加密 (20 point(s)) 题目描述 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运 ...
- PAT 1048. 数字加密(20)
本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余--这里用J代表10.Q代表11.K代 ...
- PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
随机推荐
- ccf-170904-通信网络
ccf-170904-通信网络 题目分析: 有向图 如果a可以直接或者间接连接b则a与b相互知晓 一共有多少个点知道n个点 刚开始算错复杂度,优化后反而超时 ...事实无脑爆搜这道题也是可取的因为只有 ...
- SQLI DUMB SERIES-4
less4 输入单引号发现回显正常,说明单引号被过滤了,输入双引号: ?id=1" 说明输入的Id被一对双引号和圆括号包围,因此闭合双引号和圆括号就行,其他方法跟less1差不多 例如:un ...
- FZU软工第三次作业-原型设计
目录 00.前言: 01.PSP表格: 02.需求分析--NABCD模型 N-- Need 需求 A-- Approach 做法 B-- Bnefit 好处 C-- Competitors 竞争 D- ...
- Python学习-终端字体高亮显示1
Python学习-终端字体高亮显示 1.采用原生转义字符序列,对Windows有的版本不支持(比如win7),完美支持Linux 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显 ...
- Calendar类的使用——闰年的计算
1.Calendar类: 是一个抽象类,需要导入java.util.Calendar包. Calendar c = Calendar.getInstance(); getInstance直接返回的是子 ...
- git配置config文件
1.Git有一个工具被称为git config,它允许你获取和设置变量:这些变量可以控制Git的外观和操作的各个方面.这些变量以等级的不同可以被存储在三个不同的位置: (1) /etc/gitconf ...
- C# to IL 8 Methods(方法)
The code of a data type is implemented by a method, which is executed by the ExecutionEngine. The CL ...
- js中的eval函数另一种实现
js中有一个函数eval可以一段文本改为js代码,本来使用eval也可以达到目的,但自己看了不少资料都不推荐使用eval函数,于是自己就在思考有没有不使用eval的方法? 其实需求很简单,就是把一个 ...
- ThinkPHP3.2 where方法的使用
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询.表达式查询.快捷查询.区间查询.组合查询在内的查询操作.where方法 ...
- python中in,not in,比较运算符,格式化输出,编码
一,python中的in,和not in python中in的作用是检测或查找,例如: c = ‘你好大号胡覅但是啊飞碟说’ b = ‘你好’ print(b in c ) 结果: True c = ...