大佬教程收集整理的这篇文章主要介绍了计算 n+nn+nnn 的分层值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个控制台应用程序,从客户端获取一个整数并检查这个数字是否可以分层,即可以是表示为
@H_403_9@ number = d + dd + ddd + ... + dd...ddd
其中 @H_403_9@d 是一些数字。例如
@H_403_9@ 36 = 3 + 33 861 = 7 + 77 + 777 335 - can't be represent in d + dd + ddd way
到目前为止,我只能弄清楚如何允许用户输入整数。
@H_403_9@using System; namespace ConsoleApp1 { class Program { static voID Main(String[] args) { Console.Writeline("input Integer"); //ask user to input Integer String n = Console.Readline(); String nn = Console.Readline(); String nnn = Console.Readline(); //allows user to input Integer } } }
一个简单的解决方案是检查不同的数字以找到解决方案:
// IsStratifified input n
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;
return -1;
}
,
假设您的号码有 d 位数字。
求 a(d) 和 a(d-1):a(n) = (10^n-1)*(10/81) - n/9
选择这两个中小于输入数字的较大者,通常是 a(d)。
如果它平均划分您的号码,那么您的号码就是分层的。
请注意,a(n) 是 1 + 11 + 111 + ... + 11...11(以 n 个 1 结尾)。
例如36:a(2) = 12。36/12 = 3。
例如861:a(3) = 123。861/123 = 7。
例如335:335/123 = 约 2.72。
这是 O(1)。
a(n) 公式由 Henry Bottomley & OEIS 提供
以上是大佬教程为你收集整理的计算 n+nn+nnn 的分层值全部内容,希望文章能够帮你解决计算 n+nn+nnn 的分层值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。