首先解释一下何为水仙花数:水仙花数只是自幂数的一种,严格来说是三位数的个位、十位、百位的3次幂数相加等于原来的数字,称为水仙花数。(例如:1^3 + 5^3+ 3^3 = 153)

那么如何通过C#语句来解决这个问题呢?

分析:想要找到百位的水仙花数,要解决的问题由两个,第一个是如何让计算机正确分离出百位数的个位、十位、百位的数字。第二个是如何将其不断循环让100到999都能经过检验。

第一个问题:将这个数值类型定义为整型int(这种数据类型的数字是没有小数点的)

最高位数字——对100整除,则小数点后的数值都被强制去掉了。如153/100=1.53=1(int类型);

最低位数字——对10取余数,153%10=3;

中间位数字,利用上面两种方法有两种不同的解决思路。

方法1:将其变为最高位数字再整除,先将这个数字减去100*最高位数字,则中间位则成为最高位数字,再用它对10整除,小数点被去掉了。

如(153-100*1)/10=5.3=5(int)

方法2:将其变为最低位数字,这个数字除以10之后,中间位的数字就变成了最低位。由于除法运算符的优先级高于求余运算符,所以括号可以省略。

(153/10)%10=153/10%10=15%10=5

第二个问题:选用while或for循环结构,使得100到999都能拆开来分别来检验。

int i=100

while(i<=999){循环体 ;i++;

}

for(表达式1;表达式2;表达式3)

表达式1设置初始条件,表达式2是循环条件,表达式3是循环的调整。

for (int i = 100; i < 1000; i++)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

代码示例

int num = 100;
while(num <= 999)
{
int a = num / 100;//取出数字的百位
int b = num / 10 % 10;//取出数字的十位
int c = num % 10;//取出数字的个位
if (num == a * a * a + b * b * b + c * c * c)//计算过程
{
Console.WriteLine(num);//输出数字
}
num++;
}
Console.ReadLine();

其实用C#寻找100到999的所有水仙花数的方式有多种,可以利用for循环等等,这里就不一一列出。

如何用C#寻找100到999的所有水仙花数?的更多相关文章

  1. for_in循环练习题_100到999之间的水仙花数

    水仙花数 153 == 3**3 + 5**3 + 1**3 点击查看笔者代码 for i in range(100, 1000): a = i % 10 b = i // 100 c = (i // ...

  2. 编写一个Java应用程序,该应用程序包括2个类:Print类和主类E。Print 类里有一个方法output()功能是输出100 ~ 999之间的所有水仙花数(各位数字的 立方和等于这个三位数本身,如: 371 = 33 + 73 + 13。)在主类E的main方法中来 测试类Print

    package zuoye; public class print { void output() { System.out.println("100-999之间的水仙花数是:") ...

  3. C++ 输出100—999中所有的水仙花数

    输出100-999中所有的水仙花数,若3位数xyz满足 , 则xyz为水仙花数,例如 , 因此153是水仙花数. #include <iostream> using namespace s ...

  4. Java程序设计之打印100~999的水仙花数

    package printDaffodilNumber; /* * 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身 ...

  5. C语言程序设计100例之(4):水仙花数

    例4    水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若 ...

  6. Tips_of_JS 之 利用JS实现水仙花数的寻找与实现斐波那契数列

    一.水仙花数 1.啥是水仙花数? 水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 2.利用JS实现对水 ...

  7. python3 练习题100例 (二十一)打印一定范围内的水仙花数

    题目内容: 水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身. 例如:153是一个“水仙花数”,因为 153 是个 3位数,而1**3+5**3+3**3==153. 输入 ...

  8. java 寻找水仙花数

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...

  9. 6.编写一个Java应用程序,该应用程序包括2个类:Print类和主类E。Print 类里有一个方法output()功能是输出100 ~ 999之间的所有水仙花数(各位数字的 立方和等于这个三位数本身,如: 371 = 33 + 73 + 13。)在主类E的main方法中来 测试类Print。

    Print类: package com.bao; public class Print { int g,s,b; void outPut() { for(int i=100;i<1000;i++ ...

随机推荐

  1. 老李推荐:第2章3节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之NoteEditor简介

    老李推荐:第2章3节<MonkeyRunner源码剖析>了解你的测试对象: NotePad窗口Activity之NoteEditor简介   我们在增加和编辑一个日记的时候会从NotesL ...

  2. 老李分享:《Linux Shell脚本攻略》 要点(三)

    老李分享:<Linux Shell脚本攻略> 要点(三)   1.生产任意大小的文件 [root@localhost dd_test]#[root@localhost dd_test]# ...

  3. rxjava2学习笔记(1)

    1.什么是RxJava? 简单,清晰的多线程编程框架.可方便的写出维护性高,逻辑清晰的Java程序. 2.什么是观察者模式? 入门教程讲这种高大上抽象概念都是耍流氓! 3.开始 3.1github地址 ...

  4. 关于html5调用手机相机(原创)

    很久没写随笔了 从ios6开始,webview支持html <input type="file">标签,用来调取手机的相册和相机,但是没有权限提示,不知道是不是我写的有 ...

  5. 六行python代码的爱心曲线

    前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...

  6. CSS3实现一束光划过图片、和文字特效

    在打折图标里面 实现一道白光划过的动画效果 css: <!DOCTYPE html><html><head><meta charset="utf-8 ...

  7. get方式提交中文乱码(两次编码,一次解码)

    1.编码XMLHttpRequest //建立连接 xmlhttp.open("get","${pageContext.request.contextPath}/serv ...

  8. Nmap功能与常用命令

    Nmap功能与常用命令 其基本功能有三个,一是探测一组主机是否在线:其次是扫描主机端口,嗅探所提供的网络服务:还可以推断主机所用的操作系统. Nmap可用于扫描仅有两个节点的LAN,直至500个节点以 ...

  9. java线程控制方法

    一.中断线程 1.Thread.sleep()让线程进入睡眠状态,放弃CPU的占用暂停若干毫秒使用方法: public class runable implements Runnable { @Ove ...

  10. [ext4]磁盘布局 - group分析

    ext4文件系统的磁盘布局是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块合成一个个group. group大小最大为256M(默认为256M), ...