Java和C语言分别实现水仙花数及拓展代码

网友投稿 258 2022-09-14


Java和C语言分别实现水仙花数及拓展代码

目录前言一、水仙花数1.代码(java)2.运行结果(Java)3.代码(C语言) 4.运行结果(C语言)二、拓展1.代码(Java)2.运行结果(Java)3.代码(C语言)4.运行结果(C语言)

前言

求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。)

一、水仙花数

因为水仙花数是三位数,所以我们把范围定为100~999。

1.代码(Java)

public class Num {

public static void main(String[] args) {

for(int n = 100;n <= 999;n++){

int count = 0;

int tmp = n;

while(tmp != 0){

count++;

tmp = thttp://mp/10;

}

tmp = n;

int sum = 0;

while(tmp != 0){

sum += Math.pow(tmp%10,count);

tmp = tmp/10;

}

if(sum == n){

System.out.println(sum);

}

}

}

}

2.运行结果(Java)

3.代码(C语言)

其中的一种方法,只输出水仙花数,下文会进行拓展。

#include

int main()

{

int n = 0;

int a, b, c = 0;

printf("水仙花数为:\n");

for (n = 100; n <= 999; n++)

{

a = n / 100;

b = n / 10 % 10;

c = n % 100 % 10;

if (n == a * a * a + b * b * b + c * c * c)

printf("%d\n", n);

}

return 0;

}

4.运行结果(C语言)

二、拓展

已知三位自幂数为水仙花数,一位自幂数为独身数,不存在二位自幂数,以此类推还有四叶玫瑰数,五角星数,六合数,北斗七星数,八仙数,九九重阳数,十全十美数的自幂数。

求出0-100000中的自幂数?

只要将上文代码稍微改下数值就可以实现。

1.代码(Java)

public class Num {

public static void main(String[] args) {

for(int n = 0;n <= 100000;n++){

int count = 0;

int tmp = n;

while(tmp != 0){

count++;

tmp = tmp/10;

}

tmp = n;

int sum = 0;

while(tmp != 0){

sum += Math.pow(tmp%10,count);

tmp = tmp/10;

}

if(sum == n){

System.out.println(sum);

}

}

}

}

2.运行结果(Java)

3.代码(C语言)

由于上文提到的方法只适用于三位数,显然不能输出0-100000中的所有自幂数,所以我们用适用更广的方法。

#include

#include

int main()

{

int n = 0;

for (n = 0; n <= 100000; n+http://+)

{

int count = 1;

int tmp = n;

int sum = 0;

while (tmp/10)

{

tmp = tmp / 10;

count++;

}

tmp = n;

while (tmp)

{

sum = pow(tmp % 10, count) + sum;

tmp = tmp / 10;

}

if (sum == n)

printf("%d\n", sum);

}

return 0;

}

可以看到两种语言的代码都很相似。

4.运行结果(C语言)

#include

int main()

{

int n = 0;

for (n = 0; n <= 100000; n+http://+)

{

int count = 1;

int tmp = n;

int sum = 0;

while (tmp/10)

{

tmp = tmp / 10;

count++;

}

tmp = n;

while (tmp)

{

sum = pow(tmp % 10, count) + sum;

tmp = tmp / 10;

}

if (sum == n)

printf("%d\n", sum);

}

return 0;

}

可以看到两种语言的代码都很相似。

4.运行结果(C语言)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:控制台-网络管理之在Cacti系统中导入MIB信息库
下一篇:NetworkManager—linux强大的网络管理工具(运行networkmanager)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~