2017年院赛D题 简单加密
来源:互联网 发布:linux tail命令 编辑:程序博客网 时间:2024/05/18 08:07
目录:
2017年院赛A题 Neptune'Pudding
2017年院赛B题 N个数求和
2017年院赛C题 treat
2017年院赛D题 简单加密
2017年院赛E题 守望者的逃离
2017年院赛F题 数独游戏
2017年院赛G题 忠诚
2017年院赛H题 最大异或和
题目:
简单加密
Description:
小A和小B之间有数字信息来往,但是小A担心自己发送给小B的私密信息泄露被他人获取,于是他打算研究一个简单的加密方法只有自己和小B看得懂。小A给小B发送的信息保证都是1~9之间的数字,小A通过奇数位上的数字表示个数,对应的下一个偶数位的数字表示对应个数的数字来加密(比如:2635表示两个6连着3个5加密之后就是66555),如果最后一位是奇数位置结尾个数表示n,那么连着的加密串就是n个*(比如263加密后就是66***)。
Input:
第一行输入一个正整数T表示数据组数(T<=1000)
接下来T行每行输入一个字符串表示小A要发送给小B的信息(字符串长度不超过100)
Output:
对于每组数据输出一行小A信息加密之后的字符串
Sample Input:
2
2635
263
Sample Ouput:
66555
66***
标程:
#include <stdio.h>#include <string.h>using namespace std;int main(){int T ;char str[105] , ans[1005];scanf("%d" , &T);while(T--){scanf("%s" , str);int len = strlen(str);int pos = 0;for(int i=0 ; i<len ; i+=2){int cnt = str[i]-'0';char ch;if(i+1 >= len) ch='*';else ch=str[i+1];for(int j=0 ; j<cnt ; j++) ans[pos++] = ch;}ans[pos] = '\0';printf("%s\n" , ans);}return 0;}
我的代码:
#include<iostream>#include<string.h>using namespace std;int main(){char c[101];int t;cin>>t;while(t--){cin>>c;int k=0,l=strlen(c);while(k<=l-2){for(int i=0;i<c[k]-'0';i++)cout<<c[k+1];k+=2;}if(k==l-1)for(int i=0;i<c[k]-'0';i++)cout<<'*';cout<<endl;}return 0;}
0 0
- 2017年院赛D题 简单加密
- 简单加密Unity 3D APK
- 简单搜索 D题
- 简单加密
- 简单加密
- 简单加密
- CF 343D D. Water Tree(树链剖分,简单题)
- MD5加密和简单加密
- 对称加密之简单加密
- bzoj 4066: 简单题 k-d tree
- 硬盘简单加密.
- 简单加密解密原形
- 简单的页面加密
- 硬盘简单加密
- 简单密码加密过程
- 简单的单机加密
- MD5简单加密
- Cooki简单加密
- C语言结构体的字节对齐原则
- C++部分类,对象总结
- 数值优化学习——wolfe条件里的线搜索算法
- 448. Find All Numbers Disappeared in an Array
- 数值优化学习——wolfe条件里的线搜索算法
- 2017年院赛D题 简单加密
- 数据挖掘算法-Apriori Algorithm(关联规则)
- 第二本书 lvm 设备制作 扩大 缩减 删除
- deep ocr
- 利用Android源码,轻松实现汉字转拼音功能
- CF
- 自定义手指滑动解锁
- 里氏替换原则(LSP)
- 对象及内存管理——final修饰符