水仙花数(daffodil)

水仙花数(daffodil)及相关内容

水仙花数相关定义:

水仙花数是自幂数的一种,与其类似的有:独身数,四叶玫瑰数,五角星数,六合数,北斗七星数,八仙数,九九重阳数,十全十美数。

自幂数:指一个n位数,它的每一位上的数字的n次幂之和等于它本身。
独身数:1位数的1次方都等于其本身,所以1~9都是独身数
水仙花数:一个三位数,它的每位上的数字的3次幂之和等于它本身。例如:1^3 +5^3 +3^3=153.
四叶玫瑰数:一个四位数,它的每位上的数字的4次幂之和等于它本身。

十全十美数:一个十位数,它的每位上的数字的10次幂之和等于它本身。

习题

输入m,n(100<m<n<1000),输出m~n之间的所有水仙花数。若3位数ABC满足ABC=A^3 +B^3 +C^3,则称其为水仙花数。例如 1^3 +5^3 +3^3=153.,所以153是水仙花数。

解题

重点在于利用 " / “,” %"运算符,分离出每位上的数值,然后判断。
C语言:

#include<stdio.h>
int main(){
	int m,n,i,a,b,c;
	scanf("%d %d",&m,&n);
	if(m>n||m<100||n>999){
		printf("输入数据有误,请重新输入:");
		scanf("%d %d",&m,&n);}
	for(i=m;i<n;i++){
		a=i/100;
		b=i/10%10;
		c=i%10;
		if(i==a*a*a+b*b*b+c*c*c)
			printf("%d\n",i);
		}
	return 0;
}

Java:

import java.util.Scanner;
public class daffodil {
	public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.print("输入m,n的值:");
	int m,n,i,x,y,z;
	m=sc.nextInt();
	n=sc.nextInt();
	if(m>n||m<100|n>1000) {
		System.out.print("输入数据有误,请重新输入m,n的值:");
		m=sc.nextInt();
		n=sc.nextInt();
	}
	for(i=m;i<n;i++) {
		x=i/100;
		y=i/10%10;
		z=i%10;
		if(i==x*x*x+y*y*y+z*z*z) {
			System.out.println(i);
		}
	}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值