综合案例

6-1-水仙花数(最少是3位数)
是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身
例:在控制台中输出1000以内的所有水仙花数
查找问题
查找样本:100-999
查找目标:是不是水仙花数
找到后操作:输出目标数据
实现代码:
for (int i = 100; i <= 999; i++)
{
/* if( i 是不是一个水仙花数)
{
Console.WiteLine(i);
}
*/
//注:如何判断一个三位数i是不是水仙花数
int a = i / 100 % 10;
int b = i / 10 % 10;
int c = i / 1 % 10;
if (a * a * a + b * b * b + c * c * c ==i)
{
Console.WriteLine(i);
}
}
→ 输出i的值为153,370,371,407
是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身
例:在控制台中输出1000以内的所有水仙花数
查找问题
查找样本:100-999
查找目标:是不是水仙花数
找到后操作:输出目标数据
实现代码:
for (int i = 100; i <= 999; i++)
{
/* if( i 是不是一个水仙花数)
{
Console.WiteLine(i);
}
*/
//注:如何判断一个三位数i是不是水仙花数
int a = i / 100 % 10;
int b = i / 10 % 10;
int c = i / 1 % 10;
if (a * a * a + b * b * b + c * c * c ==i)
{
Console.WriteLine(i);
}
}
→ 输出i的值为153,370,371,407
6.2-分解质因数
任何一个合数(0和1除外),都可以分解为多个质数相乘
合数:除了1和它本身还能被其它数整除
代码示例:
//提示用户输入一个合数,將合数保存在变量number中
int number;
while (true)
{
Console.Write("请输入一个合数(大于1):");
number = int.Parse(Console.ReadLine());
if (number <= 1)
{
Console.Write("输入有误,重新输入大于1的数字,按回车键继续");
Console.ReadLine();
Console.Clear();
}
else
{
bool isFind = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//不是质数
break;
}
else
{
//是质数
Console.Write("输入有误,输入的数字必须是合数,按回车键继续");
Console.ReadLine();
Console.Clear();
}
}
}
//2、得到变量number所有的质因数,把它们保存到集合factor中
List<int> factors = new List<int>();
int n = number;
while (n != 1)
{
for (int i = 2; i <= n; i++)
{
if(n % i == 0)
{
n = n / i;
factors.Add(i);
break;
}
}
}
//输出结果
string result = number + "=";
for (int i = 0; i < factors.Count; i++)
{
result = result + factors[i];//可以简写为result += factors[i]
if (i < factors.Count - 1)
{
result += "x";
}
}
Console.Write(result);
Console.ReadLine();

6-3-斐波拉契数列
例:
1,1,2,3,5, 8, 13……
前两位 = 1
第 i 为 = 第 i-1 位 + 第 i - 2 位
代码示例
//获取用户输入的长度,保存到变量 n 中
Console.Write("请输入斐波拉契数列的长度:");
int n = int.Parse(Console.ReadLine());
//创建长度为 n 的数字,依次保存没一位数字
int[] number = new int[n];
//给每一项赋值
for (int i = 0; i < number.Length; i++)
{
if (i <= 1)
{
number[i] = 1;
}
else
{
number[i] = number[i - 1] + number[i - 2];
}
}
//遍历输出数字内容
foreach (int item in number)
{
Console.Write(item + "\t");
}
Console.ReadLine();
6-4-买桃问题
代码示例:
桃子3元一个,3个核桃可以换一个桃子,你拥有100元,最多可以吃到多少个桃子
int money = 100, price = 3, exchange = 3;
int eated, kernel;
eated = money / price;
kernel = eated;
while (kernel >= exchange)
{
//换取桃子
int peach = kernel / exchange;
//计算剩余桃核
int left = kernel % exchange;
//吃掉桃子
eated += peach;
//计算当前拥有的桃核
kernel = left + peach;
}
Console.Write("最多可以吃到" + eated + "个桃子");
Console.ReadLine();
6-5- 哥德巴赫猜想
代码示例:
//哥德巴赫猜想:任何一个大于2的偶数,都可以被分解为两个质数相加
//提示并获取用户输入的偶数,保存到变量number中
int number;
while(true)
{
Console.Write("请输入一个大于2的偶数:");
number = int.Parse(Console.ReadLine());
if(number <= 2 || number % 2 != 0)
{
Console.Write("你输入的有误,请重新输入一个大于2的偶数:");
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
//分解number,找到两个质数,他们的和等于number,把它们分别保存在变量 i 和 j 中
//i: 2—number - 2
int i, j = 0;
for ( i = 2; i < number - 1; i++)
{
j = number - i;
bool isFind = false;
for (int k = 2; k < i; k++)
{
if (i % k == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//i不是质数
continue;
}
else
{
// i 是质数

}
isFind = false;
for (int k = 2; k < j; k++)
{
if (j % k == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//j 不是质数
}
else
{
//j是质数
break;
}
}

//输出结果
string result = number + "=" + i + "+" + j;
Console.WriteLine(result);
Console.ReadLine();
6-6-反序输出
反序输出的完整实现:
//获取用户输入,將用户的输入保存到挺普通中
Console.Write("请输入一个字符串:");
string input = Console.ReadLine();
反序变量input,将其字符保存到reverse中
string reverse = "" ;
for(int i = input.Length - 1; i--)
{
reverse += input[i]
}
输出结果:
Console.Write(reverse + ":是串符字的入输你");

6-7-控制台日历控制台日立
任何一个合数(0和1除外),都可以分解为多个质数相乘
合数:除了1和它本身还能被其它数整除
代码示例:
//提示用户输入一个合数,將合数保存在变量number中
int number;
while (true)
{
Console.Write("请输入一个合数(大于1):");
number = int.Parse(Console.ReadLine());
if (number <= 1)
{
Console.Write("输入有误,重新输入大于1的数字,按回车键继续");
Console.ReadLine();
Console.Clear();
}
else
{
bool isFind = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//不是质数
break;
}
else
{
//是质数
Console.Write("输入有误,输入的数字必须是合数,按回车键继续");
Console.ReadLine();
Console.Clear();
}
}
}
//2、得到变量number所有的质因数,把它们保存到集合factor中
List<int> factors = new List<int>();
int n = number;
while (n != 1)
{
for (int i = 2; i <= n; i++)
{
if(n % i == 0)
{
n = n / i;
factors.Add(i);
break;
}
}
}
//输出结果
string result = number + "=";
for (int i = 0; i < factors.Count; i++)
{
result = result + factors[i];//可以简写为result += factors[i]
if (i < factors.Count - 1)
{
result += "x";
}
}
Console.Write(result);
Console.ReadLine();

6-3-斐波拉契数列
例:
1,1,2,3,5, 8, 13……
前两位 = 1
第 i 为 = 第 i-1 位 + 第 i - 2 位
代码示例
//获取用户输入的长度,保存到变量 n 中
Console.Write("请输入斐波拉契数列的长度:");
int n = int.Parse(Console.ReadLine());
//创建长度为 n 的数字,依次保存没一位数字
int[] number = new int[n];
//给每一项赋值
for (int i = 0; i < number.Length; i++)
{
if (i <= 1)
{
number[i] = 1;
}
else
{
number[i] = number[i - 1] + number[i - 2];
}
}
//遍历输出数字内容
foreach (int item in number)
{
Console.Write(item + "\t");
}
Console.ReadLine();
6-4-买桃问题
代码示例:
桃子3元一个,3个核桃可以换一个桃子,你拥有100元,最多可以吃到多少个桃子
int money = 100, price = 3, exchange = 3;
int eated, kernel;
eated = money / price;
kernel = eated;
while (kernel >= exchange)
{
//换取桃子
int peach = kernel / exchange;
//计算剩余桃核
int left = kernel % exchange;
//吃掉桃子
eated += peach;
//计算当前拥有的桃核
kernel = left + peach;
}
Console.Write("最多可以吃到" + eated + "个桃子");
Console.ReadLine();
6-5- 哥德巴赫猜想
代码示例:
//哥德巴赫猜想:任何一个大于2的偶数,都可以被分解为两个质数相加
//提示并获取用户输入的偶数,保存到变量number中
int number;
while(true)
{
Console.Write("请输入一个大于2的偶数:");
number = int.Parse(Console.ReadLine());
if(number <= 2 || number % 2 != 0)
{
Console.Write("你输入的有误,请重新输入一个大于2的偶数:");
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
//分解number,找到两个质数,他们的和等于number,把它们分别保存在变量 i 和 j 中
//i: 2—number - 2
int i, j = 0;
for ( i = 2; i < number - 1; i++)
{
j = number - i;
bool isFind = false;
for (int k = 2; k < i; k++)
{
if (i % k == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//i不是质数
continue;
}
else
{
// i 是质数

}
isFind = false;
for (int k = 2; k < j; k++)
{
if (j % k == 0)
{
isFind = true;
break;
}
}
if (isFind)
{
//j 不是质数
}
else
{
//j是质数
break;
}
}

//输出结果
string result = number + "=" + i + "+" + j;
Console.WriteLine(result);
Console.ReadLine();
6-6-反序输出
反序输出的完整实现:
//获取用户输入,將用户的输入保存到挺普通中
Console.Write("请输入一个字符串:");
string input = Console.ReadLine();
反序变量input,将其字符保存到reverse中
string reverse = "" ;
for(int i = input.Length - 1; i--)
{
reverse += input[i]
}
输出结果:
Console.Write(reverse + ":是串符字的入输你");

时间: 2024-11-11 12:24:32

综合案例的相关文章

Ext.js入门:常用组件与综合案例(七)

一:datefield简单示例 二:timefield简单示例 三:numberfield简单示例 四:FormPanel提交 datefield简单示例: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <link href="Ext/resources/css/ext-all.css&

综合案例-整合办公系统后台模块

综合案例-整合办公系统后台模块 1.配置虚拟主机(如www.think.com) 2.配置hosts文件并重启Apache服务器 3.复制ThinkPHP核心文件到项目的目录中(如think目录) 4.创建Zend工程 5.创建index.php入口文件(编写四步走) 6.划分项目前后台模块 设置配置文件(./Application/Common/Conf/config.php) 7.创建Public控制器并定义login方法 编写控制器三步走 8.设置URL调度模式 9.复制模板资源到Publ

Winform开发框架中的综合案例Demo

在实际的系统开发中,我们往往需要一些简单的的案例代码,基于此目的我把Winform开发框架中各种闪光点和不错的功能,有些是我们对功能模块的简单封装,而有些则是引入了一些应用广泛的开源组件进行集成使用,因此把它们做了一个Demo进行展示,以方便我们随时了解和参考,并能够快速应用相应的场景到具体的项目中. 1.闪屏展示界面及主体界面 在很多系统里面,提供一个设计不错的图片作为程序界面展示的效果是挺不错的,这个小程序也不例外,基本上整合了一些WInform界面常用的各种功能. 而整个案例的界面的界面以

DOM综合案例、SAX解析、StAX解析、DOM4J解析

今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * 演示使用dom技术给xml中添加标签 * <book> <name id="b001">SSH</name> <author>老于</author> <price>152</price> </boo

JavaEE Tutorials (30) - Duke综合案例研究示例

30.1Duke综合应用的设计和架构456 30.1.1events工程458 30.1.2entities工程459 30.1.3dukes—payment工程461 30.1.4dukes—resources工程461 30.1.5Duke商店工程461 30.1.6Duke货运工程46530.2构建和部署Duke综合案例研究应用467 30.2.1使用NetBeans IDE构建和部署Duke综合应用467 30.2.2使用Maven构建和部署Duke综合应用46730.3运行Duke综合

JavaScript:综合案例-表单验证

综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须是4位数字,按照正则进行验证: .雇员姓名:不能为空: .雇员职位:不能为空: .雇员日期:按照"yyyy-mm-dd"的格式编写,按照正则进行验证: .基本工资:按照小数编写,小数为最多2位,按照正则进行验证: .佣金:难找小数编写,小数位数最多2位,按照正则进行验证. 具体步骤: 第一

XML学习总结-DOM和SAX解析-综合案例-(四)

============DOM解析    vs   SAX解析             ======== DOM解析 SAX解析 原理: 一次性加载xml文档,不适合大容量的文件读取 原理: 加载一点,读取一点,处理一点.适合大容量文件的读取 DOM解析可以任意进行增删改成 SAX解析只能读取 DOM解析任意读取任何位置的数据,甚至往回读 SAX解析只能从上往下,按顺序读取,不能往回读 DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单. S

Linux学习笔记——例说makefile 综合案例

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.一个较为复杂的例子 [代码仓库]--makefile-example 代码仓库位于bitbucket,可借助Tortoise

C语言基础知识之综合案例(1)

1,在屏幕上显示信息. 最常见的显示信息的方式是使用库函数printf()和puts(). a,转义字符. b,转移说明符. printf()函数位于标准C语言库中,它是最通用的在屏幕上显示信息的方式. #include<stdio.h> void main() { //在屏幕上显示文本信息 very nice ! printf("very nice !"); //显示变量的值 int number = 10; /* 格式化字符串 格式化字符串指定如火如荼格式输出,由以下三

爬虫——综合案例流程版

爬虫综合案例 开发步骤: 导入类库 创建爬虫通用类 初始化init方法 类中编写重试下载模块 类中编写真正下载模块 类外编写保存函数 类外编写获取robots.txt函数 类外编写抽取网址函数 类中编写网址正常化函数 创建下载限流类 爬虫通用类封装run方法 创建爬虫对象运行 导入类库 requests:爬虫请求类库 hashlib:哈希加密类库 queue:队列 re:正则 time:时间 threading>Thread:多线程 datetime>datetime:日期时间 urllib&