HDU 2816 有趣的恶心模拟

真亏HH神犇能想出这种恶心题!而且题目描述还这么坑爹!

奇偶不说清楚!

#include<iostream>
#include<cstdio>
using namespace std;

char str[1111];
char l1[111];
char l2[111];
int len;

void work()
{
 	 len=strlen(str);
 	 int index[26]={21,22,23,31,32,33,41,42,43,51,52,53,61,62,63,71,72,73,74,81,82,83,91,92,93,94};
 	 for( int i=0;i<26;i++ )
	  	  l1[index[i]]=char(i+'A');
	 char str1[1111];
	 int len1=0;
	 for( int i=0;i<len;i+=2 )
	 {
	  	  int num=0;
	  	  num=(str[i]-'0')*10+str[i+1]-'0';
	  	  str1[len1++]=l1[num];
  	 }
  	 str1[len1]=0;
  	 //printf( "loop1:%s\n",str1 );
  	 for( int i=0;i<=len1;i++ )
  	 	  str[i]=str1[i];
  	 len=len1;
  	 char index1[30]={"QWERTYUIOPASDFGHJKLZXCVBNM"};
  	 for( int i=0;i<26;i++ )
  	 	  l2[index1[i]]='A'+i;
  	 for( int i=0;i<len;i++ )
  	 	  str[i]=l2[str[i]];
  	 //printf( "%s\n",str );
  	 char str2[1111];
  	 len1=0;
  	 //printf("len:%d\n",len);
  	 if( len%2==0 )
  	 { 
	   	 for( int i=0;i<len/2;i++ )
	   	 {
	  	      str2[len1++]=str[i];
		  	  str2[len1++]=str[i+len/2];
 	  	 }
  	 	 for( int i=len1-1;i>=0;i-- )
	 	  	  printf( "%c",str2[i] );
	 	 printf( "\n" );
	 
	 }
  	 else
  	 {
	  	 for( int i=0;i<=len/2;i++ )
  	 	 {
	  	  	  str2[len1++]=str[i];
	  	  	  if( i+len/2+1<len )
	  	  	  	  str2[len1++]=str[i+len/2+1];
		 }
  	 	 for( int i=len1-1;i>=0;i-- )
	 	  	  printf( "%c",str2[i] );
	 	 printf( "\n" );
  	 }
}

int main()
{
 	while( scanf("%s",&str)!=EOF )
 	{
	 	   work();
    }
 	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值