C# C中的阿姆斯特朗数#
我用C#编写了这个程序来生成阿姆斯特朗数。我知道添加额外的方法是不必要的,但这是我刚刚学会并一直在练习的东西。因此,无论我给出的限制有多大,生成器只显示9之前的数字C# C中的阿姆斯特朗数#,c#,math,C#,Math,我用C#编写了这个程序来生成阿姆斯特朗数。我知道添加额外的方法是不必要的,但这是我刚刚学会并一直在练习的东西。因此,无论我给出的限制有多大,生成器只显示9之前的数字 using System; namespace ArmstrongNumberGenerator { class Program { static void Main(string[] args) { Console.WriteLine("Enter the
using System;
namespace ArmstrongNumberGenerator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter the maximum limit for searching");
int max = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= max; i++)
{
if (isArmstrong(i))
Console.WriteLine(i);
}
Console.ReadLine();
}
static bool isArmstrong(int x)
{
int temp = x;
int sum = 0;
while (x!=0)
{ sum = sum + x % 10;
x = x / 10;
}
if (sum == temp)
return true;
else
return false;
}
}
}
使用系统;
名称空间ArmstrongNumberGenerator
{
班级计划
{
静态void Main(字符串[]参数)
{
Console.WriteLine(“输入搜索的最大限制”);
int max=Convert.ToInt32(Console.ReadLine());
对于(int i=1;i阿姆斯特朗数的解释:
其数字的立方体之和必须等于数字本身
例如,407
作为输入。
4*4*4+0*0*0+7*7*7=407
是一个阿姆斯特朗数字
您需要正确计算总和:
static bool isArmstrong(int x)
{
int sum = 0;
for (int i = x; i > 0; i = i / 10)
{
sum = sum + (int)Math.Pow(i % 10, 3.0);
}
if (x == sum)
return true;
else
return false;
}
您的代码有以下输出(除了我包含的0
也是阿姆斯特朗编号):
阿姆斯特朗号码说明:
其数字的立方体之和必须等于数字本身
例如,407
作为输入。
4*4*4+0*0*0+7*7*7=407
是一个阿姆斯特朗数字
您需要正确计算总和:
static bool isArmstrong(int x)
{
int sum = 0;
for (int i = x; i > 0; i = i / 10)
{
sum = sum + (int)Math.Pow(i % 10, 3.0);
}
if (x == sum)
return true;
else
return false;
}
您的代码有以下输出(除了我包含的0
也是阿姆斯特朗编号):
你的isAmstrong公式本身似乎是错误的
尝试使用Math.Pow(x%10,3)的总和来代替以下内容:
sum = sum + x % 10;
x = x / 10;
使用
签出阿姆斯特朗号码:
您的isAmstrong公式本身似乎是错误的
尝试使用Math.Pow(x%10,3)的总和来代替以下内容:
sum = sum + x % 10;
x = x / 10;
使用
签出阿姆斯特朗号码:
您从不使用当前数字检查数字长度幂,因为:
在休闲数论中,阿姆斯特朗数是
一个数字,它是其自身数字的总和,每个数字的幂均为
位数
我根据这一点修正了你的方法
static bool isArmstrong(int x)
{
int sum = 0;
int tempX = x;
int temp = 0;
int length = x.ToString().Length;
while (x != 0)
{
temp = x % 10;
x = x / 10;
sum += (int)Math.Pow(temp, length);
}
if (sum == tempX)
return true;
else
return false;
}
例如,如果调用所有小于10000
的阿姆斯特朗号码
for (int i = 1; i < 10000; i++)
{
if (isArmstrong(i))
Console.WriteLine(i);
}
您从不使用当前数字检查数字长度幂,因为:
在休闲数论中,阿姆斯特朗数是
一个数字,它是其自身数字的总和,每个数字的幂均为
位数
我根据这一点修正了你的方法
static bool isArmstrong(int x)
{
int sum = 0;
int tempX = x;
int temp = 0;
int length = x.ToString().Length;
while (x != 0)
{
temp = x % 10;
x = x / 10;
sum += (int)Math.Pow(temp, length);
}
if (sum == tempX)
return true;
else
return false;
}
例如,如果调用所有小于10000
的阿姆斯特朗号码
for (int i = 1; i < 10000; i++)
{
if (isArmstrong(i))
Console.WriteLine(i);
}
int num=407;
int nnum=num;
字符串ss=num.ToString();
int a=0;
int b=0;字符串aa=“”;
双newA=0;
for(int i=0;i0)
{
如果(数值<10)
{
num=num+10;
}
a=num%10;
aa+=a+“,”;
字符串s=num.ToString();
字符串str=s.Remove(s.Length-1,1);
s=str;
b=int.Parse(s);
newA+=Math.Pow(a,3);
Console.WriteLine(({0}))”,newA);
num=b;
控制台写入线(aa);
num=int.Parse(str);
}
如果(nnum==newA)
{
WriteLine(“\n\n\n\n{0}是一个强数…!”,nnum);
}
}
int num=407;
int nnum=num;
字符串ss=num.ToString();
int a=0;
int b=0;字符串aa=“”;
双newA=0;
for(int i=0;i0)
{
如果(数值<10)
{
num=num+10;
}
a=num%10;
aa+=a+“,”;
字符串s=num.ToString();
字符串str=s.Remove(s.Length-1,1);
s=str;
b=int.Parse(s);
newA+=Math.Pow(a,3);
Console.WriteLine(({0}))”,newA);
num=b;
控制台写入线(aa);
num=int.Parse(str);
}
如果(nnum==newA)
{
WriteLine(“\n\n\n\n{0}是一个强数…!”,nnum);
}
}
我编写了下面的代码,以确定给定的数字是否是阿姆斯特朗数字,并且工作正常
使用字符串参数创建了一个名为Armstrong的新静态方法
public static void Armstrong(string i)
{
double k=0;
for (int j = 0; j < i.Length; j++)
{
k = k + Math.Pow(Convert.ToInt16(Convert.ToString(i[j])), i.Length);
}
if (k == int.Parse(i))
{
Console.WriteLine("Armstrong");
}
else
{
Console.WriteLine("Not Armstrong");
}
}
公共静态无效Armstrong(字符串i)
{
双k=0;
对于(int j=0;j
如果我们在Main方法中调用该方法,那么就可以得到所需的输出
阿姆斯特朗(“153”)
结果:阿姆斯特朗
类似地,如果我们想确定一个数字是否为armstrong,那么将所需的数字保留为该方法的参数并执行我已经编写了下面的代码,以确定给定的数字是否为armstrong数字,并且工作正常
使用字符串参数创建了一个名为Armstrong的新静态方法
public static void Armstrong(string i)
{
double k=0;
for (int j = 0; j < i.Length; j++)
{
k = k + Math.Pow(Convert.ToInt16(Convert.ToString(i[j])), i.Length);
}
if (k == int.Parse(i))
{
Console.WriteLine("Armstrong");
}
else
{
Console.WriteLine("Not Armstrong");
}
}
公共静态无效Armstrong(字符串i)
{
双k=0;
对于(int j=0;j
如果我们在Main方法中调用该方法,那么就可以得到所需的输出
阿姆斯特朗(“153”)
结果:阿姆斯特朗
同样,如果我们想知道一个数是否为ar