如何用C#寻找100到999的所有水仙花数?
首先解释一下何为水仙花数:水仙花数只是自幂数的一种,严格来说是三位数的个位、十位、百位的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的所有水仙花数?的更多相关文章
- 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 // ...
- 编写一个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之间的水仙花数是:") ...
- C++ 输出100—999中所有的水仙花数
输出100-999中所有的水仙花数,若3位数xyz满足 , 则xyz为水仙花数,例如 , 因此153是水仙花数. #include <iostream> using namespace s ...
- Java程序设计之打印100~999的水仙花数
package printDaffodilNumber; /* * 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身 ...
- C语言程序设计100例之(4):水仙花数
例4 水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若 ...
- Tips_of_JS 之 利用JS实现水仙花数的寻找与实现斐波那契数列
一.水仙花数 1.啥是水仙花数? 水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 2.利用JS实现对水 ...
- python3 练习题100例 (二十一)打印一定范围内的水仙花数
题目内容: 水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身. 例如:153是一个“水仙花数”,因为 153 是个 3位数,而1**3+5**3+3**3==153. 输入 ...
- java 寻找水仙花数
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...
- 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++ ...
随机推荐
- 老李分享:Web Services 组件 2
WSDL 是一种基于 XML 的语言,它用来对 web service 及其如何访问进行描述. WSDL 表示 web service 描述语言(Web Services Description La ...
- 性能测试培训:sql server性能测试分析局部变量的性能影响
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培训中,为了提高学员性能优化的经验,加入了 ...
- asp.net core源码飘香:Configuration组件
简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据 ...
- Spring配置数据源的几种方法
一:数据源的配置1.通过JNDI配置数据源 1.在tomcat context.xml中配置数据源 <Resource name="jdbc/ds" au ...
- struts2 之 Action的优化配置
总结:struts2种action的配置文件会随着业务的增加而增加,导致配置文件膨胀.struts2中提供了三种方案来解决这个问题: 1. 动态方法调用来实现. 2. 通配符配置来解决. 3. 使用注 ...
- HDFS中NameNode启动过程
移动到hadoop文件目录下 NameNode启动命令:sbin/hadoop-daemon.sh start namenode DataNode启动命令:sbin/hadoop-daemon.sh ...
- HDU 5008 求第k小子串
本题要求第k小的distinct子串,可以根据height数组,二分出这个第k小子串所在后缀的位置信息.由于题目要求子串起始下标尽可能小.所以再在rank数组中,二分出与当前后缀LCP大于等于所求子串 ...
- Hive 的简单使用及调优参考文档
Hive 的简单使用及调优参考文档 HIVE的使用 命令行界面 使用一下命令查看hive的命令行页面, hive --help --service cli 简化命令为hive –h 会输出下面的这 ...
- LeetCode 322. Coin Change
原题 You are given coins of different denominations and a total amount of money amount. Write a functi ...
- C语言学习第九章
学习C语言的最后一节课了,原因嘛上一章的末尾说过了,其实写这篇博客的时候以后开始学习Java一个多月了,一直因为各种各样的原因没有坚持做到每天一篇学习记录,可能主要因为懒吧....也有点笨,Java的 ...