【发布时间】:2019-03-18 19:15:36
【问题描述】:
我有一个数字为 4353816274931243 的字符串,我想将字符串中的每个奇数位置相乘。所以最后它应该看起来像 831031611221441832283。
我尝试使用这样的 if 语句。
if(cijfer%2==0)
{
cijfer = cijfer*2
}
但这只是在字符串中找到所有奇数并将它们相乘。 有没有人知道如何解决这个问题?
这是我已经拥有的部分代码。
string num;
int visanr, cijfer=0;
console.write("Enter visa number: ");
num=console.readline();
num = num.Replace(" ", "");
visanr = num.Length;
if (visanr==16)
{
for (int i = 0; i < visanr; i++)
{
string num1 = num.Substring(i, 1);
cijfer = int.Parse(num1);
if (cijfer%2==0)
{
cijfer = cijfer * 2;
}
}
}
else
{
Console.Write("The visanumber " + num + " is not correct!");
}
Console.Read();
提前致谢
【问题讨论】:
-
这似乎是家庭作业。我建议你自己试试。我可以在这里给出一些想法。 1. 使用 trim 函数删除多余的空间 2. 像字符数组一样迭代字符串并使用 for 循环让我们说 index = 0 3. 如果 index / 2 != 0 则索引位置为奇数并将 str[index] 解析为 int并乘以一个变量并继续这样做直到字符串的末尾。
-
你应该阅读这个问题,它的最佳答案:stackoverflow.com/questions/21249670/…
-
请不要在问题中加入语言名称。您已在问题中添加了语言标签,这就是我们将用来确定问题所涉及的语言的内容;在标题中添加冗余信息只是噪音。
-
您想检查奇数位置,但您检查奇数的值是该位置的值。您能解释一下为什么要检查值的奇数而不是位置吗?
-
你使用
int.Parse,但是如果我输入AAAABBBBCCCCDDDD呢?你希望那时会发生什么?面对糟糕的输入,你必须编写出健壮的程序;考虑使用TryParse。
标签: c#