c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode
#include <stdio.h>
#include <math.h>
#include <string.h> char explode( char * str , char symbol ); double distance ( int x1 , int y1 , int x2 , int y2 ); // 求平面上2个坐标点的直线距离
double circle_area( double radius ); // 求圆面积。 radius 半径
double two_point_cacl_circle_area ( int x1 , int y1 , int x2 , int y2 );// 从两点坐标,求圆的面积 // 阶乘,递归方式实现。
int jiecheng( int N ); // 递归方式,求2数的最大公约数
int digui_gongyueshu( int a , int b );
// 菲波那次数列
int fibonacci( int N ); int main( int argc , char ** argv ){
char * str = "4;5;6;18;26;31;42;57;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;89;90;91;93;94;95;96;97;98;99;100;101;102;103;104;105;1051;1052;1310;1023;1041;1203;1256;1259;1260;1270;1210;1209;1279;1282;1278;1211;1276;1275;1240;1236;1235;1234;1239;1281;1028;1026;1231;1232;1277;1042;1050;1019;1267;1266;1268;1295;1265;1264;1258;1289;1219;1218;1217;1216;1016;1252;1251;1250;1249;1245;1244;1215;1243;1242;1302;1255;1287;1241;1253;1230;1271;1272;1054;1283;1284;1285;1286;";
char * result = "";
char list = {};
int x1 = , y1 = , x2 = , y2 = ; // 2个坐标 printf( "\n求阶乘的结果是:%d \n" , jiecheng( ) ); printf( "\n平面上2个坐标x1( %d , %d ) , x2( %d , %d ),的直线距离是:%f \n" , x1 , y1 , x2 , y2 , distance( x1 , y1 , x2 , y2 ) ); printf( "\n平面上2个坐标x1( %d , %d ) , x2( %d , %d ),的直线距离作为圆的半径时,这个圆的面积是:%f \n" , x1 , y1 , x2 , y2 , two_point_cacl_circle_area( x1 , y1 , x2 , y2 ) ); printf( "\n 8和5 的最大公约数是: %d " , digui_gongyueshu( , ) );
printf( "\n 8和15 的最大公约数是: %d \n" , digui_gongyueshu( , ) ); int i = ;
for( ; i <= ; ++i ){
printf( "\n %d 的菲波那次数列 值是: %d " , i , fibonacci( i ) );
} //printf( "%s \n" , str );
return ;
} char explode( char * str , char symbol ){
char list = {};
int i = , j = ;
int len = strlen( str ) ;
// int len = sizeof( list ) / sizeof( int ); // 如果是int,float,double型, 通过sizeof()来计算list的长度 /*
for( ; i < len ; ++i ){
if( str[ i ] != symbol ){
list[ j ] += str[i];
}
else{
++ j;
}
}
*/ return list;
} // 通过画勾股定理直角三角形 ,求平面上2个坐标点之间的巨鹿
double distance ( int x1 , int y1 , int x2 , int y2 ) {
int x = , y = ;
double res = 0.0; x = abs( x2 - x1 ); // 直角三角形的 勾
y = abs( y2 - y1 ); // 直角三角形的 股 res = sqrt( x * x + y * y ) ; // 勾股定理 求 斜线
return res;
} // 求圆面积。 radius 半径
double circle_area( double radius ){
double pi = 3.1416 ;
return pi * radius * radius;
} // 从两点坐标,求圆的面积
double two_point_cacl_circle_area ( int x1 , int y1 , int x2 , int y2 ){
return circle_area( distance( x1 , y1 , x2 , y2 ) );
} // 阶乘,递归方式实现。
int jiecheng( int N ){
int res = ; // 先写1个,参数最小的情况的返回值
if( N == ){
res = ;
}
// 再写1个递归调用的情况。
else{
res = N * jiecheng( N - );
}
printf( "%d阶乘的结果:%d \n" , N , res );
// 完成递归。
return res; /*
我们从数学上严格证明一下factorial函数的正确性。
刚才说了,factorial(n)的正确性依赖于factorial(n-1)的正确性,
只要后者正确,在后者的结果上乘个n返回这一步显然也没有疑问,那么我们的函数实现就是正确的。 因此要证明factorial(n)的正确性就是要证明factorial(n-1)的正确性,
同理,要证明factorial(n-1)的正确性就是要证明factorial(n-2)的正确性, 依此类推下去,最后是:要证明factorial(1)的正确性就是要证明factorial(0)的正确性。 而factorial(0)的正确性不依赖于别的函数,它就是程序中的一个小的分支return 1;,
这个1是我们根据阶乘的定义写的,肯定是正确的,因此factorial(1)也正确,
因此factorial(2)也正确,
依此类推,最后factorial(n)也是正确的。 其实这就是中学时讲的数学归纳法(Mathematical Induction),
用数学归纳法来证明只需要证明两点:Base Case正确,递推关系正确。
*/
} // 递归方式,求2数的最大公约数
int digui_gongyueshu( int a , int b ){
int res = ;
if( a % b == ){
res = b;
}
else{
res = digui_gongyueshu( b , a % b );
}
return res; /*
1、编写递归函数求两个正整数a和b的最大公约数(GCD,Greatest Common Divisor),使用Euclid算法: 1. 如果a除以b能整除,则最大公约数是b。
2.否则,最大公约数等于b和a%b的最大公约数。 Euclid算法是很容易证明的,请读者自己证明一下为什么这么算就能算出最大公约数。
*/
} // 菲波那次数列
int fibonacci( int N ){
int res = ; if( N == || N == ){
res = ;
}
else{
res = fibonacci( N - ) + fibonacci( N - );
}
return res;
}
c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode
c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode的更多相关文章
- 求平面上N点最远两点和最近两点距离
最近两点,二分法 最远两点,凸包+找对踵点
- 求菲波那契数列的第n个数
1,2,3,5,8,13..... 求第n个数 def get_num(n): if n == 1: return 1 if n == 2: return 2 return get_num(n - 1 ...
- 已知空间三点组成的面求该面上某点的Z值
已知空间三点,那么可以就可以确定空间三点组成的平面.此时可以根据某一点的X值和Y值,来求取该点在平面上的Z值.这个过程对于求三角面片上某点的高程或者权值特别有用,其本身也可以看作一种线性插值. 其算法 ...
- 平面上画n条直线,最多能将平面分成多少部分?
转自:http://blog.csdn.net/cywosp/article/details/6724522 在一个平面上画1999条直线,最多能将这一平面划分成多少个部分? 没有直线时有一个空间:( ...
- C语言程序设计100例之(12):Eratosthenes筛法求质数
例12 Eratosthenes筛法求质数 问题描述 Eratosthenes筛法的基本思想是:把某范围内的自然数从小到大依次排列好.宣布1不是质数,把它去掉:然后从余下的数中取出最小的数,宣布它 ...
- 算法导论-求(Fibonacci)斐波那契数列算法对比
目录 1.斐波那契数列(Fibonacci)介绍 2.朴素递归算法(Naive recursive algorithm) 3.朴素递归平方算法(Naive recursive squaring) 4 ...
- 求斐波那契数列的第n项
问题描述:斐波那契数列是这样的一个数列,1,1,2,3,5,8,..,即前两项都是1,后面每一项都是其前面两项的和. 现在要你求出该数列的第n项. 分析:该问题是一个经典的数列问题,相信大家在很多语言 ...
- PHP MYSQL 搜索周边坐标,并计算两个点之间的距离
搜索附近地点,例如,坐标(39.91, 116.37)附近500米内的人,首先算出“给定坐标附近500米”这个范围的坐标范围. 虽然它是个圆,但我们可以先求出该圆的外接正方形,然后拿正方形的经纬度范围 ...
- opencv利用hough概率变换拟合得到直线后,利用DDA算法得到直线上的像素点坐标
图片霍夫变换拟合得到直线后,怎样获得直线上的像素点坐标? 这是我今天在图像处理学习中遇到的问题,霍夫变换采用的概率霍夫变换,所以拟合得到的直线信息其实是直线的两个端点的坐标,这样一个比较直接的思路就是 ...
随机推荐
- spring+mybatis+druid+mysql+maven事务配置
1.首先pom.xml文件里面需要用到的jar配置: <!-- spring事务,包含了@Transactional标注 --> <dependency> <groupI ...
- jquery.validate使用 - 1
jquery.validate使用攻略 好几年不写JS了,资料整理起来比较慢,格式也有点乱 主要分几部分jquery.validate 基本用法jquery.validate API说明jquery. ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序实现继承
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第十一篇:为ASP.NET MVC应用程 ...
- 《BI项目笔记》SSAS部署时发生的问题——元数据管理器中存在错误 解决办法
在生成和部署期间出错.是否继续?解决办法: 用Microsoft SQL Server Management Studio 连接Analysis Services 然后删除多维数据库,重新布署.这样就 ...
- 访问google.com
ping www.google.com 得到的IP来访问
- c语言文件复制
#include<stdio.h> #include<stdlib.h> void main(void) { // locate ], outfile[]; gets(infi ...
- struts2学习:配置篇之namespace
把namespace单独拉出来讲一方面是因为它实际上不是一个element,而只是一个attribute,前面已经说了,它是package的一个attribute:另外一方面是因为这个属性是我接触St ...
- k.NIO方式SSL通道流程
在看完NIO和SSLEngine集成的例子后,我们了解到并没有提供一个SSLServerSocketChannel,在SelectionKey事件发生后,通过SSLEngine的wrap和unwrap ...
- js判断IE浏览器版本
if(navigator.userAgent.indexOf("MSIE")>0){ if(navigator.userAgent.indexOf("MSIE 6. ...
- postgresql - 服务配置
1.查看配置的修改是否需要重启数据库 select name,context from pg_settings where name like 'wal_buffers'; 如果context的值是p ...