字符串加密

Problem : 1116

Time Limit : 1000ms

Memory Limit : 65536K

description

  1. 给你一段经过加密的字符串,我们称之为密文,现在请你编写程序输出它加密前的字符串(原文)。
  2. 已知原文中只包含26个小写字母,而密文中除了包含小写字母,还包含0~9十个数字字符,解密规则是:
  3. 1、密文中一个字母前面如果有数字x,那么原文的对应位置是在字母表中从这个字母开始向后移动x位得到的新字母。例如2a表示a向后移动2位,原文中对应就是c,再例如1z表示z向后移动1位,原文中对应就是a
  4. 2、密文中一个字母前面如果没有数字,那么原文的对应位置就是该字母。

input

  1. 多组输入数据,每组数据只有一个加密后的字符串。长度不超过1000000,只包含数字字符和小写字母,其中连续数字的长度不超过9,最后一位一定是小写字母。

output

  1. 输出一行原字符串。

sample_input

  1. happynewyear
  2. 25ia1op4un4a1vy3ba24t

sample_output

  1. happynewyear
  2. happynewyear
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. using namespace std;
  6. char *ch="abcdefghijklmnopqrstuvwxyz";
  7. char a[];
  8. int main()
  9. {
  10. int i,k,j,shu,tmp,cou;
  11. while(scanf("%s",a)!=-)
  12. {
  13. for(i=;a[i]!='\0';)
  14. {
  15. k=;shu=;j=;
  16. while(a[i]>=''&&a[i]<='')
  17. {
  18. k++;
  19. i++;
  20. }//此时的i是那个字母
  21. if(k)
  22. {
  23. for(cou=;cou<=k;cou++)
  24. {
  25. shu=shu+(((int)a[i-cou]-)*j);
  26. j=j*;
  27. }
  28. tmp=(a[i]-+shu)%;
  29. printf("%c",ch[tmp]);
  30. }
  31. else cout<<a[i];
  32. i++;
  33. }
  34. cout<<endl;
  35. }
  36. return ;
  37. }

//while。。很有趣。。。

//下面是之前超时的代码

  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. using namespace std;
  6. char *ch="abcdefghijklmnopqrstuvwxyz";
  7. char a[];
  8. int main()
  9. {
  10. int k,shu,tmp,i;
  11. while(scanf("%s",a)!=-)
  12. {
  13. for(i=;i<strlen(a);i++)
  14. {
  15. if(a[i]<='z'&&a[i]>='a')
  16. {
  17. if(a[i-]>''||a[i-]<'')
  18. printf("%c",a[i]);
  19. else
  20. {
  21. shu=(int)a[i-]-;
  22. if(a[i-]<=''&&a[i-]>='')
  23. shu=shu+((int)a[i-]-)*;
  24. tmp=(a[i]-+shu)%;
  25. printf("%c",ch[tmp]);
  26. }
  27. }
  28. }
  29. cout<<endl;
  30. }
  31.  
  32. return ;
  33. }

nefu 1116 字符串加密的更多相关文章

  1. 利用javascript对字符串加密

    没事利用js写个对字符串加密的方法,基本原理就是先把字符串转化成对应的unicode(用到的方法是charCodeAt()),再把unicode统一减去100(这里加减随便你取多少),把得到的unic ...

  2. iOS字符串加密至MD5&及获取文件MD5

    iOS 字符串加密至MD5 #import <CommonCrypto/CommonDigest.h> + (NSString *) md5:(NSString *)str { const ...

  3. Labview实现字符串加密

    Labview实现字符串加密 对字符串进行加密,规则是每个字母后移5 位 例如A 变为F,b 变为g,x 变为c,y 变为d- 实现效果 后端实现

  4. Dotfuscator可以实现混淆代码、变量名修改、字符串加密

    C#编写的代码如果不进行一定程度的混淆和加密,那么是非常容易被反编译进行破解的,特别是对于一些商业用途的C#软件来说,因为盯着的人多,更是极易被攻破.使用VS自带的Dotfuscator可以实现混淆代 ...

  5. C# 字符串加密解密方法

    这个是加密的算法的命名空间,使用加密算法前要引用该程序集  System.Security.Cryptography using System;using System.Data;using Syst ...

  6. 敏感字符串加密处理(PHP实现)

    /** * 敏感字符串加密处理 * @param $raw_str 原始字符串 * @param $before 前面保留的显示位数 * @param $after 后面保留的显示位数 * @para ...

  7. C# 字符串加密解密函数

    原文:C# 字符串加密解密函数 using System; using System.Text;using System.Security.Cryptography; using System.IO; ...

  8. Java对字符串加密并返回星号※

     If you don't look back, you'll never know I waiting for you behind you. Java对字符串加密并返回星号※ PasswordUt ...

  9. 从网上整理的一些delphi字符串加密解密方法

    function Encode(Str: string): string; var //加密 TmpChr: AnsiChar; i, Len: integer; begin Result := St ...

随机推荐

  1. Devstack single node Installation on VM

    Last three days, I want to install devstack on my virtual machine on Vmware Workstation.The VM'syste ...

  2. Strusts2--课程笔记6

    拦截器: Struts2的大多数核心功能都是通过拦截器实现的.拦截器之所以称之为"拦截器",是因为它可以在执行Action之前或之后拦截下用户请求,执行一些操作,以增强Action ...

  3. Idea1.5使用Maven搭建Apache Spark1.6源码阅读环境

    1.插件安装,在Idea界面依次:File->settings->plugins,安装Maven 2.下载Spark1.6.2源码,这个在GitHub上下载,具体流程自己百度,很简单 3. ...

  4. 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式

    JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式 学习要点: 1.Global对象 2.Math对象 ECMA-262对内置对象的定义是:"由ECMASc ...

  5. 生成扫描二维码下载app的二维码的方法

    进入APP store苹果应用程序商店,根据分类找到你要生成二维码的APP,然后在浏览器连接里找到ID后的一串数字就是APP的应用ID了. 安卓系统的appid 在电脑浏览器中打开应用宝官网,http ...

  6. 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查

    1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...

  7. Django中templates使用的补充

    Django中的模版的使用 1.实例:查询用户信息,在页面显示,并隔行有底色 test1/views文件 def userinfo(request): if request.method=='GET' ...

  8. 关于c++的引用

    引用的本质 引用事实上就是两个变量指向同一个地址 int x; int &y = x; cout << &x << endl; cout << &a ...

  9. Colorful(Folders星语多彩文件夹) v1.7绿色版

    软件名称:星语多彩文件夹ColorfulFolders v1.7绿色版软件类别:国产软件运行环境:WinXP/2003/Vista/Win7/Win2008软件语言:简体中文授权方式:免费版软件大小: ...

  10. 杭电1002 Etaoin Shrdlu

    Problem Description The relative frequency of characters in natural language texts is very important ...