【发布时间】:2014-09-15 15:14:29
【问题描述】:
我刚开始学习 C#,只知道非常基础的东西。所以这个问题对你来说可能很容易,但对我来说很难。答案越详细越好。
下一行代码将检查学号是真还是假。当所有字符的总和(乘以它们的位号)为 11 的倍数时,该数字为实数。
Console.WriteLine("What is your studentnumber?");
stnum = Console.ReadLine();
var stnumint = Convert.ToInt32(stnum);
var ans1 = (stnumint % 10 - stnumint % 1) / 1;
var ans2 = (stnumint % 100 - stnumint % 10) / 10;
var ans3 = (stnumint % 1000 - stnumint % 100) / 100;
var ans4 = (stnumint % 10000 - stnumint % 1000) / 1000;
var ans5 = (stnumint % 100000 - stnumint % 10000) / 10000;
var ans6 = (stnumint % 1000000 - stnumint % 100000) / 100000;
var ans7 = (stnumint % 10000000 - stnumint % 1000000) / 1000000;
var control = ans1 * 1 + ans2 * 2 + ans3 * 3 + ans4 * 4 + ans5 * 5 + ans6 * 6 + ans7 * 7;
var endnum = control % 11;
if (endnum == 0)
{
Console.WriteLine("You have got a valid studentnumber.");
}
else
{
Console.WriteLine("Check if your studentnumber is correct. If it is, you are not a student.");
}
以学生号 9232753 为例。计算:(9*7 + 2*6 + 3*5 + 2*4 + 7*3 + 5*2 + 3*1) % 11 时,答案将为 0。
如何将这行代码写成更小的循环?
【问题讨论】:
-
这是家庭作业吗?
-
提示:什么是 100 / 10、1000 / 100 和 10000 / 1000,...
标签: c# loops console console-application