简单编码

简单编码

时间: 1ms        内存:64M

描述:

将一串文本译成密码,密码的规律是: 将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:

 0——>9

1——>8

2——>7

3——>6

4——>5

5——>4

6——>3

7——>2

8——>1

9——>0

然后将所有字符的顺序颠倒。

输入:

输入一串文本,最大字符个数不超过100。

输出:

输出编码后的结果。

示例输入:

china

示例输出:

ANIHC

提示:

参考答案(内存最优[752]):

#include <stdio.h>
#include<string.h>
int main()
{
   char s[100];
   int i,l;
   char t;
   gets(s);
   l=strlen(s);
   for(i=0;i<l;i++)
   {
   	if(s[i]>='0'&&s[i]<='9')
   	s[i]=48+57-s[i];
   	else if(s[i]>='a'&&s[i]<='z')
   	s[i]=s[i]-32;
   	else
   	s[i]=s[i]+32;
   }
   for(i=0;i<l/2;i++)
   {
   	t=s[i];s[i]=s[l-1-i];s[l-1-i]=t;
   }
   puts(s);
   
  
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
int main()
{
	char str[101],c;
	int i=0,j,a,b,v;
	while((cin>>c)&&c!=-1)
	{str[i]=c;
	i++;}
	for(j=0;j<i;j++)
	{a=str[j];
	if(a>='a'&&a<='z') a=a-32;
	else if(a>='A'&&a<='Z') a=a+32;
	else if(a>='0'&&a<='9')
	{switch(a)
	{case 48:a=57;break;
	case 49:a=56;break;
	case 50:a=55;break;
	case 51:a=54;break;
	case 52:a=53;break;
	case 53:a=52;break;
	case 54:a=51;break;
	case 55:a=50;break;
	case 56:a=49;break;
	case 57:a=48;break;
	}
	}
	str[j]=a;}
	for(b=i-1;b>(i-1)/2;b--)
	{char p;
	p=str[b];
	str[b]=str[i-b-1];
	str[i-b-1]=p;
	}
	for(v=0;v<i;v++)
		cout<<str[v];
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注