1006 Do the Untwist

考察编程基础知识,用到字符和数字相互转化等。形式是描述清楚明文和暗文的转化规则。

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4 #define MAXLEN 71
 5
 6 int length;
 7
 8 void toCode(int code[],char text[]){
 9     int i;
10     for(i=0;i<length;i++){
11         if(text[i] == ‘_‘)
12             code[i] = 0;
13         else if(text[i] == ‘.‘)
14                 code[i] = 27;
15             else
16                 code[i] = text[i] - 96;
17     }
18 }
19
20 void toText(char text[],int code[]){
21     int i;
22     for(i=0;i<length;i++){
23         if(code[i] == 0)
24             text[i] = ‘_‘;
25         else if(code[i] == 27)
26                 text[i] = ‘.‘;
27             else
28                 text[i] = code[i] + 96;
29     }
30     text[i] = 0;
31 }
32
33 int inRange(int n){
34     if(n>=0&&n<=27)
35         return 1;
36     return 0;
37 }
38
39 void untwist(char textC[],int k){
40     int i,j;
41     int codeC[MAXLEN],codeP[MAXLEN];
42     char textP[MAXLEN];
43
44     toCode(codeC,textC);
45     for(i=0;i<length;i++){
46         j = (k*i)%length;
47         if(inRange(codeC[i] + i))
48             codeP[j] = codeC[i] + i;
49         else if(inRange(codeC[i] + i - 28))
50                 codeP[j] = codeC[i] + i - 28;
51             else if(inRange(codeC[i] + i - 56))
52                     codeP[j] = codeC[i] + i - 56;
53                 else if(inRange(codeC[i] + i - 84))
54                         codeP[j] = codeC[i] + i - 84;
55     }
56     toText(textP,codeP);
57     printf("%s\n",textP);
58 }
59
60 int main(){
61     int k;
62     char textC[MAXLEN];
63     while(scanf("%d",&k)&&k){
64         scanf("%s",textC);
65         length = strlen(textC);
66         untwist(textC,k);
67     }
68     return 0;
69 }
时间: 2024-10-07 10:51:40

1006 Do the Untwist的相关文章

[ZOJ 1006] Do the Untwist (模拟实现解密)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 1 #include <cstdio> 2 #include <cstdlib> 3 #include <string> 4 #include <iostream> 5 #include <cstring> 6 #include <algori

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

zoj题目分类

饮水思源---zoj 转载自:http://bbs.sjtu.edu.cn/bbscon,board,ACMICPC,file,M.1084159773.A.html 注:所有不是太难的题都被归成了“简单题”,等到发现的时候已经太晚了,我太死脑筋 了……:( 有些题的程序我找不到了,555……:( SRbGa的题虽然都很经典……但是由于其中的大部分都是我看了oibh上的解题报告后做 的,所以就不写了…… 题目排列顺序没有规律……:( 按照个人感觉,最短路有的算做了DP,有的算做了图论. 有些比较

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1

TypeError: Error #1006: value 不是函数。

1.错误原因 TypeError: Error #1006: value 不是函数. at BasicChart/dataFunc()[E:\Flash Builder\Map\src\BasicChart.mxml:68] at mx.charts.chartClasses::Series/cacheDefaultValues()[E:\dev\4.0.0\frameworks\projects\datavisualization\src\mx\charts\chartClasses\Seri

解决openstack “failed to connect to server (code: 1006)”故障一例

openstack版本环境:ocata 安装完成ocata版本后,新建主机实例后,通过管理端进入主机实例的控制台时,报错:"failed to connect to server (code: 1006)" 解决思路: 1.检查日志文件,通过日志寻找原因. tail -f /var/log/nova/nova-novncproxy.log 发现连接5900时出现"Name or service not known" 2017-05-17 17:01:43.994 7

问题 1006: C语言程序设计教程(第三版)课后习题5.4

/******************************************************************** @file Main.cpp @date 2017-05-07 @author Zoro_Tiger @brief 问题 1006: C语言程序设计教程(第三版)课后习题5.4 http://www.dotcpp.com/oj/problem1006.html *************************************************

生理周期,POJ(1006)

题目链接:http://poj.org/problem?id=1006 解题报告: 1.枚举天数的时候可以根据前面的结果直接跳过一些错误的答案. ///三个周期是23,28,33, #include <stdio.h> int main() { int p,e,i,d,Case=1; while(scanf("%d%d%d%d",&p,&e,&i,&d),p!=-1) { int t1=p%23,t2=e%28,t3=i%33;///三个周期

solution for 1006 中国剩余定理

一.要求 http://poj.org/problem?id=1006 Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 124113   Accepted: 39154 Description Some people believe that there are three cycles in a person's life that start the day he or she is born.