主题:帮我看看这题目这样编程可不可以,
假设的Wacmahara无人沙漠里,一个非普通人组成的部落被
发现了。Wacmians的每个手上仅有两个手指和一个拇指,并且他们
发明了自己的数字系统。他们使用的数字和用来表示数字的符号都
很奇特,但是人类学家已经能够以用下面的方法描述它们:
% -- 0 ) -- 1 ~ -- 2 @ -- 3 ? -- 4 \ -- 5 $ -- -1
如你所愿,他们的系统是以6为基础的,每位上的数值达到6就
向该位的左边进位,如同随后的例子:
)@% 表示 1*6^2+3*6+0 = 36+18+0 = 54
?$~~ 表示 4*6^3+(-1)*6^2+2*6+2 = 864-36+12+2 = 842
$~~ 表示 (-1)*6^2+2*6+2 = -36+12+2 = -22
你的任务是把Wacmian数字解释成标准的10进制数字
#include<iostream.h>
#include<string.h>
void main()
{
int n,i=0,j=0,sum=0;
char a[20];
cout<<"请输入一个字符串";
cin>>a;
while(a[i++]!='\0')
j++;n=j;
for(i=0;i<n;i++)
{
if (a[i]=='$')sum-=1*6^j;
else if (a[i]==')')sum+=1*6^j;
else if (a[i]=='~')sum+=2*6^j;
else if (a[i]=='@')sum+=3*6^j;
else if (a[i]=='?')sum+=4*6^j;
else if (a[i]=='\\')sum+=5*6^j;
else (a[i]=='%');j--;
}
cout<<"这个字符串化为10进制后的结果为"<<sum;
}
有流程图最好
发现了。Wacmians的每个手上仅有两个手指和一个拇指,并且他们
发明了自己的数字系统。他们使用的数字和用来表示数字的符号都
很奇特,但是人类学家已经能够以用下面的方法描述它们:
% -- 0 ) -- 1 ~ -- 2 @ -- 3 ? -- 4 \ -- 5 $ -- -1
如你所愿,他们的系统是以6为基础的,每位上的数值达到6就
向该位的左边进位,如同随后的例子:
)@% 表示 1*6^2+3*6+0 = 36+18+0 = 54
?$~~ 表示 4*6^3+(-1)*6^2+2*6+2 = 864-36+12+2 = 842
$~~ 表示 (-1)*6^2+2*6+2 = -36+12+2 = -22
你的任务是把Wacmian数字解释成标准的10进制数字
#include<iostream.h>
#include<string.h>
void main()
{
int n,i=0,j=0,sum=0;
char a[20];
cout<<"请输入一个字符串";
cin>>a;
while(a[i++]!='\0')
j++;n=j;
for(i=0;i<n;i++)
{
if (a[i]=='$')sum-=1*6^j;
else if (a[i]==')')sum+=1*6^j;
else if (a[i]=='~')sum+=2*6^j;
else if (a[i]=='@')sum+=3*6^j;
else if (a[i]=='?')sum+=4*6^j;
else if (a[i]=='\\')sum+=5*6^j;
else (a[i]=='%');j--;
}
cout<<"这个字符串化为10进制后的结果为"<<sum;
}
有流程图最好