计算n+nn+nnn的分层值

  • 本文关键字:分层 n+nn+nnn 计算 c#
  • 更新时间 :
  • 英文 :


我试图编写一个控制台应用程序,从客户端获取一个整数,并检查这个数字是否可以分层,即可以表示为

number = d + dd + ddd + ... + dd...ddd

其中d是某个数字。例如

36 = 3 + 33
861 = 7 + 77 + 777
335 - can't be represent in d + dd + ddd

这就是Ido,但我有一个错误"不是所有代码路径都返回一个值">

using System;
namespace nn
{
class Program
{
static void Main(string[] args)
{
}
public static int N()
{
Console.WriteLine("Input integer");
//ask user to input integer
int n = int.Parse(Console.ReadLine());
for (int d = 1; d <= 9; d++)
{
var s = d;
var c = d;
while (s < n)
{
c = 10 * c + d; // generates dd, ddd, ...
s += c;
}
if (s == n)
{
return d;
}
else
{
return -1;
}
}
}
}
}

由于错误不言自明,函数N()的返回类型为int,并且您的代码在for循环后不会返回整数。为了解决这个问题,在for循环的右括号后返回整数,

public static int N()
{
Console.WriteLine("Input integer");
//ask user to input integer
int n = int.Parse(Console.ReadLine());
for (int d = 1; d <= 9; d++)
{
var s = d;
var c = d;
while (s < n)
{
c = 10 * c + d; // generates dd, ddd, ...
s += c;
}
if (s == n)
{
return d;
}
else
{
return -1;
}
}
return -1;   //This is missing return statement.
}

最新更新