- 2020-03-05 18:39
*views 4*- C/C++
- c language
- algorithm

<> In the process of transmitting information , For encryption , Sometimes it is necessary to convert text into ciphertext and send it out according to certain rules . There is an encryption rule like this ：

1. For alphabetic characters , Convert it to the next 3 Two letters . for example ：A→D,a→d,X→A,x→a;

2. For non alphabetic characters , remain unchanged .

Now? , Please input a line of characters according to the input , Output the corresponding password .

input ：I(2016)love(08)China(15)!

output ：L(2016)oryh(08)Fklqd(15)!

be careful ： String length not more than 100.

This is a topic about circulation

This topic is how to transform the last three characters , But if you choose to use if Statement to deal with the last three , You can close this blog . okay

The following is a circular method to realize the transformation .

Take capital letters as an example .

A,B,C,D,E,F,G,H…X,Y,Z.

So that's how to turn back the last three characters ?

<> The first step is to change

What about my words , The first step is to make it a circle , Not a row ,

So there's one 26 A circle of two letters .

<> The second step is to find the rules

A---->D namely ‘A’+3

B---->F namely ‘A’+(‘B’-‘A’+3)

C---->G namely ‘A’+(‘C’-‘A’+3)

.

.

.

X---->A namely ‘A’+(‘X’-‘A’+3) It's not working here .

Just find a way to turn it back , Then make it a circle , We can take advantage of a surplus to loop .

It becomes the following form ：

‘A’+(‘X’-‘A’+3)%26

We can solve the problem of moving forward all the way .

Maybe you feel a little confused , Why can this circle ?!

for instance ：

1,2,3,4,5 Five numbers

Then there is

1%5=1,

2%5=2,

3%5=3,

4%5=4,

5%5=0,

6%5=1,

7%5=2,

See , Just make an analogy , Take the remainder as many as you have .

Attach complete code ：

#include <stdio.h> #include <string.h> int main() { int i,j,k; char a[100],b[

100]; gets(a); for(i=0;i<strlen(a);i++) { if (a[i]>='A' && a[i]<='Z') { a[i]='A'

+(a[i]-'A'+3)%26; } else if (a[i]>='a' && a[i]<='z') { a[i]='a'+(a[i]-'a'+3)%26;

} } for (j=0;j<strlen(a);j++) { printf("%c",a[j]); } return 0; }

If you have a better solution , You can also leave a message , Learn from each other .

Technology

- Python146 blogs
- Java131 blogs
- Vue86 blogs
- Flow Chart79 blogs
- javascript42 blogs
- C++41 blogs
- programing language38 blogs
- MySQL37 blogs
- more...

Daily Recommendation

©2020-2021 ioDraw All rights reserved

The problem of string left rotation Interview essential ： Data structure time complexity and usage Remove outliers , use python to write matlab Of hampel(X) function BN layer pytorch realization Linux C Three methods of redirecting standard input and output to file [ Thesis reading ]HRNetV1,HRNetV2,HRNetV2p2021 World ranking of Computer Science Major ! This year's ranking reshuffle What certificates can big data test ? use Python and Pygame Implementation of code rain 2020 The 11th National Blue Bridge Cup B group C/C++