原题目:
假设有个隧道,隧道以字符 ‘#’ 结束,挖矿的过程中,会遇到钻⽯ ‘*’ 和美⾦ ‘1’ ~ ‘9’ ,让矿⼯⼩六挖到隧道的尽头,假设每个钻⽯价值500美⾦,统计⼩六挖到了价值多少美⾦的收获?
一.题目可以解析为:用户输入字符串,并且以“#”符号结尾,数字和“*”穿插其中
二.对字符串进行逐个字符判断,我的理解是,先将字符串转换为char数组,再对char数组逐个遍历,其中可以用到ascii表进行判断,因为数字再ascii中对应的序号是连续的,且数字也是连续的,因此可以用遍历单个字符进行减去48,既可以得到数字本身的大小。
namespace 隧道美金问题
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入任意数字以及*组成的字符串并以#结尾");
string str = Console.ReadLine();
char[] arry = str.ToCharArray();
int num = 0;
for (int i = 0; i < arry.Length; i++)
{
if (arry[i]== 35)
{
break;//判断以#为结尾的ascii值结束循环
}
else if (arry[i]>=49&& arry[i]<=57)
{
num += arry[i] - 48;//对每个数减去48可以得到数字本身得大小
continue;
}
else
{
num +=500;//“*”为其它出现得情况
continue;
}
}
Console.WriteLine(num);//输出结果
}
}
}