Caesar

要求实现用户输入一个数改变26个字母的排列顺序

例如输入3:

DEFGHIJKLMNOPQRSTUVWXYZABC

输入-3:

XYZABCDEFGHIJKLMNOPQRSTUVW

使用循环链表

代码如下:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 #define OK 1
 5 #define ERROR 0
 6
 7 typedef int status;
 8 typedef char ElemType;
 9
10 typedef struct DualNode
11 {
12     ElemType data;
13     struct DualNode *prior;
14     struct DualNode *next;
15 }DualNode,*DuLinkList;
16
17 status InitList(DuLinkList *L)
18 {
19     DualNode *p,*q;
20     int i;
21     *L=(DuLinkList)malloc(sizeof(DualNode));
22
23     if(!(*L))
24         return ERROR;
25
26     (*L)->next=(*L)->prior=NULL;
27     p=(*L);
28
29     for(i=0;i<26;i++)
30     {
31         q=(DualNode*)malloc(sizeof(DualNode));
32         if(!q)
33             return ERROR;
34
35         q->data=‘A‘+i;
36         q->prior=p;
37         q->next=p->next;
38         p->next=q;
39
40         p=q;
41     }
42     p->next=(*L)->next;
43     (*L)->next->prior=p;
44
45     return OK;
46 }
47
48 void Caesar(DuLinkList *L,int i)
49 {
50     if(i>0)
51     {
52         do
53         {
54             (*L)=(*L)->next;
55         }while(--i);
56     }
57     if(i<0)
58     {
59         (*L)=(*L)->next;
60         do
61         {
62             (*L)=(*L)->prior;
63         }while(i++);
64     }
65 }
66
67 int main()
68 {
69     DuLinkList L;
70     int i,n;
71     printf("请输入一个整数:");
72     scanf("%d",&n);
73
74     InitList(&L);
75     Caesar(&L,n);
76
77     for(i=0;i<26;i++)
78     {
79         L=L->next;
80         printf("%c",L->data);
81     }
82     printf("\n");
83
84     return 0;
85
86 }
时间: 2024-08-10 23:19:01

Caesar的相关文章

趣味题:恺撒Caesar密码(c++实现)

描述:Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并提供给你的将军.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的. 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

CAESAR II v5.3 2011 SP2 V5.30.2管道应力分析

Applied.Flow.Technology.Impulse.v4.0.2012.12.17 1CD CorelDRAW.Graphics.Suite.X6.v16.2.0.998.HF1.Win32 1DVD CorelDRAW.Graphics.Suite.X6.v16.2.0.998.HF1.Win64 1DVD Delcam Crispin ShoeMaker 2013 R1 1CD ITI.TranscenData.Cadfix.v9.0.Win64 1CD ESSS Kraken

Caesar&#39;s Legions(dp)

Caesar's Legions Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Description Gaius Julius Caesar, a famous general, loved to line up his soldiers. Overall the army had n1 footmen and n2 horsemen. Caesar tho

D. Caesar&#39;s Legions 背包Dp 递推DP

http://codeforces.com/problemset/problem/118/D 设dp[i][j][k1][k2] 表示,放了i个1,放了j个2,而且1的连续个数是k1,2的连续个数是k2 如果这样写,用dfs写是很简单的.但是超时,我记忆化不到 如果用递推写,对于每一个状态,更新到下一个状态. 如果放的是1,那么新的状态是dp[i + 1][j][k1 + 1][0]也就是,用多了一个1,而且连续的个数也增加了.同时,2的连续个数就打破了,变成了0 这种枚举旧状态,更新下一个状态

Codeforces118D Caesar&#39;s Legions(DP)

题目 Source http://codeforces.com/problemset/problem/118/D Description Gaius Julius Caesar, a famous general, loved to line up his soldiers. Overall the army had n1 footmen and n2 horsemen. Caesar thought that an arrangement is not beautiful if somewhe

CAESAR.II.2014.v7.00.00.2800.build.140416.WinALL-ISO 1DVD(最新完全破解版,适用于Win7 32位和64位系统。管道应力分析软件)

CAESAR Ⅱ 2011 v5.30.2  WinXP_7-ISO 1DVD CAESAR Ⅱ 2011 v5.30.1-ISO 1DVD(最新完全破解版.管道应力分析软件) CAESAR Ⅱ 5.20-ISO 1DVD(完全破解版.管道应力分析软件) CAESAR Ⅱ 2013 R1 培训教程 1CD CAESAR Ⅱ 简体中文资料(用户指南1-9章)Intergraph PVElite 2015 SP1 v17.00.01 1CD(压力容器分析设计软件)PVElite v4.3 用户手册

最新版管道应力分析CAESAR II 2014 v7.00 WinXP_7 凯撒2

最新版管道应力分析CAESAR II 2014 v7.00 WinXP_7 凯撒2CAESAR II 2013 R1 v6.10 管道设计应力分析 新增功能CAESAR Ⅱ 2011 v5.30.2 WinXP_7-ISO 1DVD(最新完全破解版,适用于Win7 32位和64位系统.管道应力分析软件)COADE CAESAR II V5.3 2011 管道设计应力分析软件CAESAR II 2013 R1 v6.10鹰图公司发布了CAESAR II 2014,包含如下更新:1. 管道规范的更新

codeforces118D - Caesar&#39;s Legions 多维DP

题意:给你n1个人,n2匹马站成一排,最多k1个人连续站,最多k2匹马连续站,问你有多少种方法 解题思路:4维dp,i,j,s,k分别代表位置,已经站了多少人,前一个站的是人还是马,一共连续站了几位了. 解题代码: 1 // File Name: 118d.cpp 2 // Author: darkdream 3 // Created Time: 2014年07月25日 星期五 15时35分03秒 4 5 #include<vector> 6 #include<list> 7 #i

1009: 恺撒Caesar密码

1009: 恺撒Caesar密码 时间限制: 10 Sec  内存限制: 128 MB提交: 349  解决: 215[提交][状态][讨论版] 题目描述 Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并提供给你的将军.消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,