C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
问题:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均 分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
分析:采用递归算法。设桃子总数为N,则
第一个猴子拿走的是M1=(N-1)/5;
第二个猴子拿走的是M2= (M1-1)/ 5 ;
第三个猴子拿走的是M3= (M2-1)/ 5 ;
依此类推,第n个猴子拿走的桃子是
M(n) = (M(n-1)-1)/5;
软件实现:
#include
int nCounter = 0;
int f(int nNum)
{
int nTmp = nNum - 1;
if((0 == (nTmp%5)) && (nCounter
{
nCounter ++ ;
return f(nTmp/5*4);
}
else
return nNum;
}
int main(int argc,char *argv[])
{
for(int i=1;;i++)
{
if((i-1)%5==0) //代码优化
{
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
nCounter = 0;
if( f(i)!=-1 && nCounter==5)
{
printf("总共有 %d 个桃子 ",i);
break;
}
}
}
return 0;
}
VC6.0下编译输出:
~~~end~~~
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等
领取专属 10元无门槛券
私享最新 技术干货