数学问题和狼追兔问题
2015-10-08 14:03
281 查看
数据结构算法之数学问题和狼追兔问题,java还没学完这里就用c++实现,不难请看代码。
这两个程序比较有意思,代码中我尽量详细解释,还是一句加油!学java去了哈哈
//该程序简单实现4个数能组成多少个不同的三位数(不能重复),并且输出这些数。 #include "stdafx.h" #include<iostream> using namespace std; int main() { int bw,sw,gw; int count=0; for(bw=1;bw<=4;bw++) { for(sw=1;sw<=4;sw++) { if(sw!=bw)//若十位不等于百位则可以继续放个位,否则+1继续判断(这里的if循环不需要else,因为不满足就递进+1,不需要执行其他语句,而且这里不满足情况不是break跳出循环而是递+1判断下一个数) { for(gw=1;gw<=4;gw++) { if((gw!=sw)&&(gw!=bw))//若个位不等于百位和十位时候,才可以放进去,否则继续+1判断 { cout<<bw<<" "<<sw<<" "<<gw<<""<<endl; count++; } } } } } cout<<"总共有"<<count<<"种"<<endl; system("pause"); return 0; }
//狼追兔就是,兔子躲在一个环形洞中,狼去洞里面找,狼的找完第一个洞,就会在第2洞找,然后会在第4洞找,下次在第7个洞找,即每次都是在n-1个环形洞中找兔子,其中有几个洞无论狼找不遍都永远找不到,我们就是利用循环求出这个洞 #include "stdafx.h" #include<iostream> using namespace std; //开始设每个洞都为0,狼找过的洞赋值为1 void safehole(int *p,const int count) { int i,pos=0; for(i=1;i<=count;i++) p[i]=0; p[pos]=1; for(int j=2;j<5000;j++)//这里j设为5000尽可能说明狼找的次数多 { pos=(pos+j)%count;//关键就是循环判断的步长,即狼下一个洞的位置为多少,一般环形的都是步长%总长度 p[pos]=1;//每次找过洞赋值为1 } } int main() { int count;//count表示洞的个数 int a[20]={0}; cout<<"这里有几个洞"<<endl; cin>>count; safehole(a,count); //洞值为1必死,为0即安全 for(int i=0;i<count;i++) { if(a[i]!=0) cout<<"躲在"<<i+1<<"必死"<<" "; else cout<<"\n"<<i+1<<"这洞不会被狼抓到"<<endl; } system("pause"); return 0; }
这两个程序比较有意思,代码中我尽量详细解释,还是一句加油!学java去了哈哈
相关文章推荐
- eclipse下修改tomcat的URIEncoding为UTF-8
- 计算1/1-1/2+1/3-1/4......+1/99-1/100的值
- 详细透彻的分析DM9000网卡驱动程序(1)
- 分享txt转换pdf格式具体转换方法
- sh脚本语法_基础
- 在一个Activity 里面去关闭另一个Activity或者多个Acitivity
- 各种RAID的理解
- 20个非常有用的Java程序片段
- Java 理论与实践: 变还是不变?
- 惠普公司将拆成两家公司
- GET 和 平 POST 的区别详解
- Swift2.1 语法指南——基本运算符
- 查看服务器CPU信息工具脚本
- 【Scala学习笔记】4. For、Function、Lazy
- ocp-199
- ocp-198
- Sublime2 中文乱码问题
- 通过分析 JDK 源代码研究 Hash 存储机制
- 产品管理流程
- ocp-197