B. 单位变换二

题目描述

由于喵星人和汪星人属于不同的物种,他们的度量衡也不同,比如喵星人的某单位M乘上11,然后再减去23173恰好等于汪星人的某单位W。也就是说0M等于-23173W,1M等于-23162W,现在请你写一段程序来帮助喵星人和汪星人做单位变换。

输入:
只有一行,为一个长度大于1且不超过12的字符串。其中最后一个字符只可能是W或M,代表相应的单位。其它字符代表一个整数,其中A代表负号(只可能是第一个字符),B到代K表9到0。

输出:也只有一行,为变换后的结果(数字用阿拉伯数字,单位仍用M和W)。如果输入的单位为M,则转换为对应的W值输出;如果输入的单位为W,则转换为对应的M值输出;测试数据保证1、输入合法;2、除法运算不会有余数;3、运算过程中所有整数都可以用int存储。

输入样例

JKM

输出样例

-23063W
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    //B C D E F G H I J K
    //9 8 7 6 5 4 3 2 1 0
    char st[14];
    int len,i,j=0,k,re=0;
    int b[14];
    gets(st);
    len=strlen(st);
    if(st[len-1]=='M')
    {
    	if(st[0]=='A')
    	{
    		for(i=1;i<len-1;i++)
    		{
    			switch(st[i])
    			{
    				case 'B':b[j++]=9;break;
    				case 'C':b[j++]=8;break;
    				case 'D':b[j++]=7;break;
    				case 'E':b[j++]=6;break;
    				case 'F':b[j++]=5;break;
    				case 'G':b[j++]=4;break;
    				case 'H':b[j++]=3;break;
    				case 'I':b[j++]=2;break;
    				case 'J':b[j++]=1;break;
    				case 'K':b[j++]=0;break;
				}
			}
			for(j=0;j<len-2;j++)
			  {
			    re=re*10+b[j];
			   // printf("%d ",b[j]);
			}
			//printf("\n%d\n",re);
			int num =(-23173)-(re*11);
			  printf("%dW\n",num);
		}
		else if(st[0]!='A')
    	{
    		for(i=0;i<len-1;i++)
    		{
    			switch(st[i])
    			{
    				case 'B':b[j++]=9;break;
    				case 'C':b[j++]=8;break;
    				case 'D':b[j++]=7;break;
    				case 'E':b[j++]=6;break;
    				case 'F':b[j++]=5;break;
    				case 'G':b[j++]=4;break;
    				case 'H':b[j++]=3;break;
    				case 'I':b[j++]=2;break;
    				case 'J':b[j++]=1;break;
    				case 'K':b[j++]=0;break;
				}
			}
			for(j=0;j<len-1;j++)
			  {
			    re=re*10+b[j];
			   // printf("%d ",b[j]);
			}
			//printf("\n%d\n",re);
			int num =(-23173)+(re*11);
			  printf("%dW\n",num);
		}
	}
	else if (st[len-1]=='W')
	{
		if(st[0]!='A')
    	{
    		for(i=0;i<len-1;i++)
    		{
    			switch(st[i])
    			{
    				case 'B':b[j++]=9;break;
    				case 'C':b[j++]=8;break;
    				case 'D':b[j++]=7;break;
    				case 'E':b[j++]=6;break;
    				case 'F':b[j++]=5;break;
    				case 'G':b[j++]=4;break;
    				case 'H':b[j++]=3;break;
    				case 'I':b[j++]=2;break;
    				case 'J':b[j++]=1;break;
    				case 'K':b[j++]=0;break;
				}
			}
			for(j=0;j<len-1;j++)
			  {
			    re=re*10+b[j];
			   // printf("%d ",b[j]);
			}
			//printf("\n%d\n",re);
			int num =(23173+re)/11;
			  printf("%dM\n",num);
		}
		else if(st[0]=='A')
    	{
    		for(i=1;i<len-1;i++)
    		{
    			switch(st[i])
    			{
    				case 'B':b[j++]=9;break;
    				case 'C':b[j++]=8;break;
    				case 'D':b[j++]=7;break;
    				case 'E':b[j++]=6;break;
    				case 'F':b[j++]=5;break;
    				case 'G':b[j++]=4;break;
    				case 'H':b[j++]=3;break;
    				case 'I':b[j++]=2;break;
    				case 'J':b[j++]=1;break;
    				case 'K':b[j++]=0;break;
				}
			}
			for(j=0;j<len-2;j++)
			  {
			    re=re*10+b[j];
			   // printf("%d ",b[j]);
			}
			//printf("\n%d\n",re);
			int num =(23173-re)/11;
			  printf("%dM\n",num);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43911865/article/details/86564124