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算法得到直线上的像素点坐标
图片霍夫变换拟合得到直线后,怎样获得直线上的像素点坐标? 这是我今天在图像处理学习中遇到的问题,霍夫变换采用的概率霍夫变换,所以拟合得到的直线信息其实是直线的两个端点的坐标,这样一个比较直接的思路就是 ...
随机推荐
- sqlserver 纵横
纵表转横表 create table Score ( Name ), Class ), score int ) ) ) ) ) ) ) ) select * from Score select t.N ...
- 配置cas
在给tomcat配置好证书的基础上做一下操作(可以根据上一篇博客进行配置) 1.cas服务端配置(最后更改一下服务器tomcat的端口号) 第一步:下载cas-server-3.4.2.1-relea ...
- python day1 常用模块
键盘输入: python2.7 raw_input() python3 input() 键盘输入默认为字符串,可通过例如 int(input())方式,实现类型转换. ‘密文’输入: 仅python的 ...
- HMI开发与控件
=>控件是什么概念? 百度曰,控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者. 对于HMI开发来说,使用控件可以快速获取到用户的交互(包括按下.释放.点击.拖动 ...
- 简单的SpringMVC的测试项目----跟struts2对比着学习
一,搭建SpringMVC项目 1,主配置文件-----地基 because,不像struts2是个独立的框架,可以脱离Spring单独使用.需要先添加Spring支持,是Spring框架组成的一部分 ...
- centos 7
vmlinuz initrd=initrd.img linux dd quiet vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet 关I ...
- 解决打开CHM文件后,右侧空白
在网上下了一个chm的文件,打开后只有目录,右侧不显示内容. 不知道是文件有问题,还是系统有问题. <ignore_js_op> 右键点击文件–属性 看到 最下面有一个提示 说是这个文件是 ...
- 【更新】【封装必备】封装辅助 - 清理&优化工具 For Win7(IT天空会员专版)
https://www.itsk.com/thread-353560-1-4.html nqawen 发表于 2015-7-9 17:26:37 本帖最后由 Amz 于 2015-11-25 10 ...
- Hbase WAL线程模型源码分析
版权声明:本文由熊训德原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/257 来源:腾云阁 https://www.qclo ...
- linux笔记:文件系统管理-分区、文件系统以及文件系统常用命令
linux分区类型: linux文件系统: df(查看文件系统容量和占用): du(统计文件或目录大小): 查询和自动挂载: 挂载命令格式: 挂载光盘: 卸载光盘: 挂载U盘: