c# - c# 判断数字是否快乐
问题描述
我试图了解如何找到数字是否是快乐数字,我知道我需要检查个位数字和最高数字位置的数字是否大于中间数字。`示例:给定数字:63240 单位:6 最高位置的数字:0 是否都大于 3 和 2 和 4(中间)?是结果:真(对于这种情况)
the quation is:
write a program that get a number from user, the program will print if the given number from the user is a happy number or not
我知道如何找到单位和最高数字位置,但是让堆栈弄清楚如何使用中间的数字来找到答案..
请注意,我们学过的唯一一门这么胖的课是数学,(甚至不是字符串是的)我们也学过一会儿和一会儿,但到目前为止什么都没有。
我也知道,为了遍历给定数字中的所有数字,我需要使用 while 循环,但我不知道如何使用它才能使用它们来得到答案。
到目前为止我的代码:
int number;
int units;
int highestDigitLoc;
bool isHappyNumber = true;
int count = 0;
Console.WriteLine("enter a number:");
number = int.Parse(Console.ReadLine());
while(number > 0)
{
count++;
units = number % 10;
highestDigitLoc = number / 10;
}
谢谢
解决方案
此链接Happy Number
以简单的方式解释了's 是什么。基本上你必须不断对数字中每个数字的平方求和,直到结果等于 1。这个过程可以无限期地进行,但幸运的是,我们确定如果总和等于 4,它永远不会产生快乐数字. 因此,我们可以做到以下几点:
private static bool IsHappy(int n)
{
if (n == 1)
return true;
else if (n == 0 || n == 4)
return false;
else
return IsHappy(SumDigitSquares(n));
}
private static int SumDigitSquares(int n)
{
if (n < 10)
return n * n;
else
return SumDigitSquares(n % 10) + SumDigitSquares(n / 10);
}
用法:
bool result = IsHappy(63240); //false
推荐阅读
- typescript - 打字稿嵌套类型映射
- hash - 完美的哈希函数生成器
- api - Dart 语言中的函数不返回值
- sql-server - 我正在使用 SQL Server Managment Studio v18 但找不到数据库图表文件夹
- javascript - 我如何限制我自己的元素只包含纯文本?
- javascript - 如何使用 gridFs 下载文件
- azure-devops - 如何在 azure devops 中配置微服务项目?
- javascript - 在其他输入字段中查找输入值
- php - PDF下载为PHP或htm文件,有什么方法可以批量下载?
- python - Python macOS Mojave cv2.waitKey 不起作用