问题遇到的现象和发生背景 小丑谜题(2)
描述
小丑绑架了詹姆斯·戈登局长。
赶到现场时,布鲁斯只发现了小丑留下的若干张扑克。根据阿福的分析,扑克牌记录了戈登局长的位置:
扑克牌有四个花色:黑桃、红桃、方块、梅花
四个花色的处理:黑桃将数字乘3、红桃将数字乘5、方块取数字的阶乘、梅花取数字整除10的模
所有黑桃和红桃处理后得到的数字相加,是哥谭市的街区号
所有方块和梅花处理后得到的数字相加,是哥谭市的门牌号
比如:方块5 红桃3 黑桃5 黑桃A 梅花Q
得到的地址是哥谭市33街区122号。
蝙蝠侠立刻出击,解救了戈登局长。然而,小丑在那里留下了更多的扑克,等着布鲁斯去破解……
输入
输入有2行
第一行整数n(n < 56),代表一共有n张扑克给出
第二行有n张扑克,扑克用花色+数字记录,每张扑克用空格分隔
输出
输出1行,内容是街区+空格+门牌
输入样例 1
5
方块5 红桃3 黑桃5 黑桃A 梅花Q
输出样例 1
33 122
提示
出现的扑克牌不会重复,扑克牌字母是大写
问题相关代码,请勿粘贴截图 #include
#include
using namespace std;
int numberjie(char* k)
{
char sum3=1;
for(int i=1;i<=k;i++)
{
sum3=sum3i;
}
return sum3;
}
int main()
{
int n;
char sum1=0,sum2=0;
string poke;
char count;
char s;
cin>>n;
while(n--)
{
cin>>poke>>count;
switch(count)
{
case 'A':
count=1;
break;
case 'j':
count=11;
break;
case 'Q':
count=12;
break;
case 'k':
count=13;
break;
default:
break;
}
if(poke=="方块")
{
s= numberjie(&count);
sum2+=s;
}
else if(poke=="红桃")
{
sum1+=count*5;
}
else if(poke=="黑桃")
{
sum1+=count*3;
}
else if(poke=="梅花")
{
sum2+=count/10;
}
}
cout<<sum1<<' '<<sum2<<endl;
system("pause");
system("cls");
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
//count 有数字型也有字符型,涉及字符转化为数字型
我想要达到的结果
如方块5 之间没有空格间隔 字符可以转化为数字型