B1048 数字加密
15/20
#include<bits/stdc++.h>
using namespace std;
stack<int> s;
char a[3]={'J','Q','K'};
int main(){
long long A,B;
cin>>A>>B;
int i=1;
while(A>0&&B>0){
if(i%2==1){
s.push((A%10+B%10)%13);
}else{
int x=B%10-A%10;
if(x<0)x+=10;
s.push(x);
}
A/=10;B/=10;
i++;
}
if(A>0)cout<<A;
if(B>0)cout<<B;
while(!s.empty()){
if(s.top()<=9)cout<<s.top();
else cout<<a[s.top()-10];
s.pop();
}
return 0;
}
后来觉得题目理解有问题,B的每一位数字都要处理。
15/20
#include<bits/stdc++.h>
using namespace std;
stack<int> s;
char a[3]={'J','Q','K'};
int main(){
long long A,B;
cin>>A>>B;
int i=1;
while(B>0){
if(i%2==1){
s.push((A%10+B%10)%13);
}else{
int x=B%10-A%10;
if(x<0)x+=10;
s.push(x);
}
if(A>0)A/=10;
B/=10;
i++;
}
while(!s.empty()){
if(s.top()<=9)cout<<s.top();
else cout<<a[s.top()-10];
s.pop();
}
return 0;
}
然而还是不行,看了其他人的博客,发现是因为没考虑这种A比B长的情况。

真是太奇葩了,明明和题目要求不符了嘛。再改。
#include<bits/stdc++.h>
using namespace std;
stack<int> s;
char a[3]={'J','Q','K'};
int main(){
long long A,B;
cin>>A>>B;
int i=1;
while(B>0||A>0){
if(i%2==1){
s.push((A%10+B%10)%13);
}else{
int x=B%10-A%10;
if(x<0)x+=10;
s.push(x);
}
if(A>0)A/=10;
if(B>0)B/=10;
i++;
}
while(!s.empty()){
if(s.top()<=9)cout<<s.top();
else cout<<a[s.top()-10];
s.pop();
}
return 0;
}
改完了,17/20,还有两个测试点没过。
B1048 数字加密的更多相关文章
- PAT B1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- 【算法笔记】B1048 数字加密
1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...
- PAT B1048 数字加密 (20)
AC代码 #include <cstdio> #include <cstring> #include <algorithm> #include <iostre ...
- PAT 1048. 数字加密(20)
本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余--这里用J代表10.Q代表11.K代 ...
- PAT-乙级-1048. 数字加密(20)
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
- PAT 乙级 1048 数字加密(20) C++版
1048. 数字加密(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求实现一种数字加密方法.首先固 ...
- PAT 1048 数字加密
https://pintia.cn/problem-sets/994805260223102976/problems/994805276438282240 本题要求实现一种数字加密方法.首先固定一个加 ...
- PAT 1048 数字加密(20)(代码+思路)
1048 数字加密(20)(20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取 ...
- PAT——1048. 数字加密
本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10.Q代表11.K代 ...
随机推荐
- 【转】Linux下从TCP状态机,三次握手判断DDOS攻击
从TCP状态机判断DDOS攻击 一.TCP协议 TCP 协议是传送层的核心协议,提供了可靠面向连接的协议,分为三次握手和四次断开,在这个过程中TCP有个状态机,记录不同阶段的状态. 二. TCP握手和 ...
- gdb调试:
1 简介 GDB(GNU Debugger)是GCC的调试工具.其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的 ...
- 测试dos攻击对openflow中flow_table溢出的影响
环境准备 环境 ubuntu16.04 mininet pox scapy 安装mininet sudo apt-get update sudo apt-get upgrade git clone g ...
- Alpha- 事后诸葛亮(麻瓜制造者)
目录 预期计划 现实进展 团队体会 成员分工及工作量比例 会议总结 预期计划 在Alpha阶段开始之前,我们的预期计划是:从用户登录,发布商品.发布求购信息的基本功能开始做起.用户登录使用输入教务处的 ...
- 安装 Autoconf, Automake & Libtool
今天在使用sudo apt-get install命令安装autoconf和automake时,出现了问题,说是不能sudo apt-get install安装这些软件似乎不是最新的.由此,我通过搜索 ...
- PAT B1025 反转链表 (25 分)
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...
- windows10 + anaconda + tensorflow-1.5.0 + python-3.6 + keras-2.2.4配置和安装
windows10 + anaconda + tensorflow-1.5.0 + python-3.6 + keras-2.2.4配置和安装 (base) C:\Users\jiangshan> ...
- Windows上安装并启动visdom
windows上安装visdom$ conda install visdomCollecting package metadata: ...working... doneSolving environ ...
- 基于Python自动上传包到nexus仓库
1.设计思路 用户通过excel表格的形式填写包的信息,并将包一起发送给负责人 2.代码实现 #coding:utf8 import os import xlrd def GetData(fileNa ...
- 【H5】复制粘贴
源文案地址 使用案例 案例1:复制分享链接 function copyTextToClipboard(text) { var textArea = document.createElement(&qu ...