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算法得到直线上的像素点坐标
图片霍夫变换拟合得到直线后,怎样获得直线上的像素点坐标? 这是我今天在图像处理学习中遇到的问题,霍夫变换采用的概率霍夫变换,所以拟合得到的直线信息其实是直线的两个端点的坐标,这样一个比较直接的思路就是 ...
随机推荐
- Less 使用指南
简而言之 Less是为了简化css http://less.bootcss.com/features/ 以上链接是Less中文网站,里面有对Less的详细介绍. 一下写在使用中遇到的问题: 1.下载L ...
- winform 传值,构造函数等
窗体转换 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f ...
- wifipineapple使用教程
1.把开关拨到右边 如果有灯亮说明有电 4个灯全亮说明电量是满的 以此类推 如果一个也不亮说明没电了需要用充电器充电 2.把开关拨到左边打开wifi的开关 会开启一个wifi大概一分钟左右会有wif ...
- linux权限,所有者、所在组、其他组(其他人员),chmod,chown
用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建 ...
- iOS开发数据库篇—SQLite常用的函数
iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 * ...
- JavaScript中的Math对象
Math对象中提供的计算功能执行起来比你在代码中写的js要快得多,这是它的一个很好的优点. 属性: 属性 说明 Math.E 即常量e的值 Math.LN10 ln10 Math.LN2 ln2 ...
- sizeof既是关键字,又是运算符(操作符),但不是函数!
sizeof是关键字吗 sizeof是关键字,这一点毋庸置疑.你不能将sizeof定义为任何标识符.查看C语言标准文档里的说明: sizeof是运算符(操作符)吗 C语言中,sizeof是运算符(操作 ...
- Android 利用SurfaceView进行图形绘制
SurfaceView使用介绍 SurfaceView是View的一个特殊子类,它的目的是另外提供一个线程进行绘制操作. 要使用SurfaceView进行绘制,步骤如下: 1.用SurfaceView ...
- Debian 上面五分钟搭建 WordPress - 博客/网站平台
没有废话,步骤如下: 下载安装软件,MySQL Apache PHP sudo aptitude install mysql-server mysql-client ##安装 MySQLsudo ap ...
- linux 后台运行命令 nohup命令
转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html 2005年04月18日 简单而有用的nohup命令在UNIX/LINUX中,普通进程用 ...