我在控制台应用程序中需要帮助,需要一个数字 然后计算数字1的出现次数
这是数学解决方案
我试图实现这个功能,但我对数学错失理解的原因并不幸运
static void Main(string[] args)
{
Stopwatch s = new Stopwatch();
Console.WriteLine("Enter the number");
string num =Console.ReadLine();
s.Start();
int count = 0;
int[] numbers = new int [num.Length];
for (int i = 0; i < num.Length; i++)
{
numbers[i] = Int32.Parse( num.Substring(num.Length - 1 - i, 1))*(Int32)Math.Pow(10,i);
}
int digits;
for (int i = 0; i < numbers.Length; i++)
{
digits = numbers[i].ToString().Length-1;
Int32 lastDegit = Int32.Parse(numbers[i].ToString()[0]+"");
count+=Convert.ToInt32(lastDegit*digits*Math.Pow(10, digits-1));
//i'm not sure about next line
count += Convert.ToInt32(lastDegit * (numbers[i].ToString().Length - 1) * Math.Pow(10, numbers[i].ToString().Length - 2));
}
Console.WriteLine(count);
}
我在评论befor
这个词时遇到了问题答案 0 :(得分:0)
string.Join(string.Empty, Enumerable.Range(0, 1000)).Count(x => x == '1')
(其中n = 1000)