用C#求水仙花数问题
编程实现水仙花数。所谓水仙花数指一个三位数的整数,其各位数字立方和等于其本身,如:153=13+53+33.要求:用带有一个输入参数的方法或函数实现,返回值为布尔类型。-...
编程实现水仙花数。所谓水仙花数指一个三位数的整数,其各位数字立方和等于其本身,如:153=13+53+33.
要求:用带有一个输入参数的方法或函数实现,返回值为布尔类型。-----好像就是输入三位数,得到的结果如:153=13+53+33这样的。 展开
要求:用带有一个输入参数的方法或函数实现,返回值为布尔类型。-----好像就是输入三位数,得到的结果如:153=13+53+33这样的。 展开
展开全部
我是做C#的
第一种方法:
using System;
class ShuiXianHua
{
static void Main()
{
for(int i=1;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++)
if(i*100+j*10+k==Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3))
Console.Write("{0,5}",i*100+j*10+k);
Console.WriteLine();
}
}
第二种方法:
using System;
class ShuiXianHua
{
static void Main()
{
int i,j,k;
for(int num = 100;num<1000;num++)
{
i = num/100; //百位数字
j = num%100/10; //十位数字
k = num%10; //个位数字
if(i*i*i+j*j*j+k*k*k == num)
Console.Write("{0,5}",num);
}
Console.WriteLine();
}
}
第三种方法:
using System;
class ShuiXianHua
{
public bool IsShuiXianHua(int num) //定义一个函数判断一个数是否为水仙花数
{
bool mark = false;
int i,j,k;
i = num/100; //百位数字
j = num%100/10; //十位数字
k = num%10; //个位数字
if(i*i*i+j*j*j+k*k*k == num)
mark = true;
else
mark = false;
return mark;
}
}
class Test
{
static void Main()
{
ShuiXianHua sxh = new ShuiXianHua();
for(int n = 100;n < 1000; n++)
{
if(sxh.IsShuiXianHua(n))
Console.Write("{0,5}",n);
}
Console.WriteLine();
}
}
第四种方法:
using System;
class ShuiXianHua
{
static void Main()
{
int i,j,k;
Console.WriteLine("水仙花数有:");
for(int n=100;n<1000;n++)
{
i = n/100; //获得百位上的数字
j = (n -i*100)/10; //获得十位上的数字
k = n - i*100 - j*10; //获得个位上的数字
if(Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3)==n)
Console.Write("{0,5}",n);
}
Console.WriteLine();
}
}
第五种方法:
using System;
class ShuiXianHua
{
static void Main()
{
string s;
int i,j,k;
Console.WriteLine("水仙花数有:");
for(int n=100;n<1000;n++)
{
s = n.ToString(); //将数字n转化为字符串
i = s[0] - '0'; //获得百位上的数字
j = s[1] - '0'; //获得十位上的数字
k = s[2] - '0'; //获得个位上的数字
if(i*i*i + j*j*j + k*k*k == n)
Console.Write("{0,5}",n);
}
Console.WriteLine();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询