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算法得到直线上的像素点坐标
图片霍夫变换拟合得到直线后,怎样获得直线上的像素点坐标? 这是我今天在图像处理学习中遇到的问题,霍夫变换采用的概率霍夫变换,所以拟合得到的直线信息其实是直线的两个端点的坐标,这样一个比较直接的思路就是 ...
随机推荐
- spark统计
http://www.myexception.cn/sql/2004512.html http://blog.csdn.net/ssw_1990/article/details/52220466 ht ...
- php实战正则表达式:验证手机号
摘自http://www.tuicool.com/articles/MFNZRzu 本文通过逐步完善一个验证手机号的正则表达式来介绍了正则表达式中的 字符组 .量词 . 字符串起始/结束位置 . 分组 ...
- 【leetcode❤python】 190. Reverse Bits
#-*- coding: UTF-8 -*- class Solution: # @param n, an integer # @return an integer def reve ...
- Dialog , ProgressDialog , PopWindow 区别
本质区别: Dialog:非阻塞对话框,弹出对话框时时,后台还可以做事情,点击背景时,对话框消失 ProgressDialog:带有圆形进度或者条形进度的对话框,一般结合handler使用.任务完成后 ...
- GridControl
隐藏Drag a column header here to group by that column https://www.devexpress.com/Support/Center/Questi ...
- Linux(centos)的常用基本命令
Linux的常用基本命令. 首先启动Linux.启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限. 在启动Linux后屏幕出现如下界面显示: …… Re ...
- 移植linux-2.6.32.2到qq2440
编译该版本内核使用的编译器版本:arm-linux-gcc 3.4.1 1.获取linux-2.6.32.2 2.解压内核 3.切换到刚解压的内核目录下: cd linux-2.6.32.2 4.修改 ...
- spring文件下载记录
/** * 下载方法 * @param request * @param response * @param storeName 文件在存在位置的名字(需要带着后缀) * @param content ...
- 带选择的sql简单用法
一般写法: select * from itcast_topic order by (case type when 2 then 2 else 1 end ) desc ,postTime desc ...
- js中对类和对象的理解
类 :对一群具有相同特征的对象的集合的描述:对象:真实存在的对象个体: **面向对象,而不是面向类. 1.一切皆对象,继承靠原型链,多态靠弱类型,封装--虽然可以靠闭包,但我个人更推崇和python一 ...