-
数据结构C语言算法数据结构C语言算法数据结构C语言算法
2009-06-02 19:29:19数据结构C语言算法、上机指导源程序及一些数据结构的实例 -
欧几里德C语言算法
2016-09-02 11:46:35欧几里德C语言算法 -
C语言算法之将十进制数转换成二进制数
2018-06-20 14:35:29导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数...导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数。
先将源代码展示给大家:
#include <stdio.h> void main() { //进制转换函数的声明 int transfer(int x); int x; printf("请输入一个十进制数:"); scanf("%d",&x); printf("转换成二进制数是:%d\n",transfer(x)); } int transfer(int x) { int p=1,y=0,yushu; while(1) { yushu=x%2; x/=2; y+=yushu*p; p*=10; if(x<2) { y+=x*p; break; } } return y; }
具体算法体现在函数体内,使用了一个while(1)的死循环,当结果产生后跳出循环。变量yushu是每一次循环内产生的余数,变量x每次循环都会被赋予新的值,这个新的值就是每一次循环内产生的商。当产生的商小于2时即产生了最后的结果(二进制数),然后跳出循环。
例如:函数自变量若为7,用自变量7除以2,得到第一次循环产生的余数为1,第一次循环产生的商为3;用第一次循环产生的商3除以2,得到第二次循环产生的余数为1,第二次循环产生的商为1。
变量y的存放也是有一定技巧的,由于每次产生的余数都小于2并且都是最后二进制数中需要按位展现出来的,因此每一次循环产生的余数都要合理地进行存放。第一次产生的余数放在个位,第二次产生的余数放在十位,第三次产生的余数放在百位......依次类推,直至某一次循环产生的商小于2,最后再把小于2的那个商放在最高位。变量p的作用就是控制位数,变量y的初始值定为0,变量p的初始值定为1,每次循环内变量p都自乘10,每次循环内都让变量y加上yushu*p,这样就实现了余数的按位存放。最后将小于2的那个商乘以p加到变量y中,得到最后的二进制数。
例如:还是以自变量7为例,第一次循环后y的值为1,第二次循环内if语句之前y的值为11,if语句内y的值变为111,111即为7的二进制数。
注意:变量p的自乘要放在变量y加上yushu*p之后!顺序不能颠倒!
欢迎大家关注/订阅我的微信公众号Code Art Online,我会在我的公众号分享个人见闻,发现生活趣味;这里不仅有0和1,还有是诗和远方↓↓↓
-
数字信号处理C语言算法实现
2015-07-14 17:17:25数字信号讲解与C语言算法实现,可以直接下载使用。 -
八皇后问题c语言算法
2017-03-30 20:52:20八皇后问题c语言算法目录
[TOC]问题分析:
相信八皇后规则的问题,大家都很熟悉,接下来是如何分析回溯法的应用。回溯法与图里面的深度优先遍历非常的类似,就是,在满足题目条件时候,它总是优先选择第一个,当不满足的时候,它会选择接下来的一个点,通常会用遍历数组的方式。
总体的代码构建如下void fun(n){ if(总体条件){ for(){ fun(n+1); } }
本问题分析:
每次填满第一行第一列,当不满足时候,试下第一行第二列,依次进行,递归的出口为找到第八个点,跳出递归。,在循环里面还要判断是否满足不同行,不同列,不同对角线。
具体代码实现:
#include<stdio.h> #include<math.h> int max=8,sum=0,a[8]; void show(){ //显示每次成功后整个界面的坐标 for(int i=0;i<max;i++){ printf("(%d,%d)\t",i,a[i]); } printf("\n"); } int check(int n){ for(int i=0;i<n;i++){ //这里只需要比较到已知就行 if(a[i]==a[n]||abs(a[n]-a[i])==(n-i))//这里比较关键,就是判断现在放下的皇后是否与之前 return 0 ; //放下的皇后有冲突(即不同列,不同对角线,因为之前有 } return 1; //之前有调用 eightQueen(n+1); //保证了不同行 } int eightQueen(int n){ int i; if(n<max){ for(i=0;i<max;i++){ a[n]=i; if(check(n)) eightQueen(n+1); } } else{ sum++; show(); } } int main(){ eightQueen(0); //从第零行开始 printf("%d",sum); }
总共有92种。结论:
主要是找到递归的出口,当满足添加时候,执行递归,不满足时候,执行循环的下一步。 马走日问题也是类似的。
-
矩阵相乘 C语言算法
2020-07-30 09:50:52矩阵相乘 C语言算法 double a[2][3] = { {1,2,3}, {4,5,6} }; double b[3][2] = { { 7,8 }, { 9,10}, { 11,12} }; double c[2][2]; ab,满足a的列等于b的行,运行结果: c[2][2]={{58,64}, {139,154} }, //矩阵相乘...矩阵相乘 C语言算法
double a[2][3] = { {1,2,3},
{4,5,6}
};
double b[3][2] = { { 7,8 },
{ 9,10},
{ 11,12}
};
double c[2][2];
ab,满足a的列等于b的行,运行结果:
c[2][2]={{58,64},
{139,154}
},
//矩阵相乘算法,最后四个参数是两个相乘的矩阵的行数和列数
//f2=s1
void MatrixMulti(double * left, double * right, double * result,u16 f1, u16 f2, u16 s1, u16 s2)
{
u16 i,j,p;
//int a[f1][f2], b[s1][s2], c[f1][s2];
//a[i][j]==a[if2+j]
//由矩阵相乘,要求f2=s1,以下用f2
double m,n,mn;
for (i = 0; i < f1; i++) //i表示第i行
{
for (j = 0; j < s2; j++) //j表示第j列
{
result[if2 + j] = 0; //在这里 result[i][j] = result[if2+j];
for(p=0;p<f2;p++)
{
m=left[if2+p];
n=right[ps2+j];
mn=mn;
result[is2 + j] +=mn;
}
}
}
} -
C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言...
2009-12-31 23:53:35C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构程序设计,C语言结构体与共用体,C语言文件操作,C语言函数 -
c语言算法实现功能的题目
2016-11-13 11:31:50c语言算法实现功能 -
N个数全排列c语言算法
2011-06-11 21:42:28输入N,输出1-N全排列c语言算法,非递归算法................ -
C语言算法速查手册源代码(含目录)
2014-08-25 09:17:27C语言算法速查手册源代码(含目录) -
经典算法大全(51个C语言算法+单片机常用算法+机器学十大算法(转)
2019-01-26 11:57:00源:经典算法大全(51个C语言算法+单片机常用算法+机器学十大算法 转载于:https://www.cnblogs.com/LittleTiger/p/10323059.html转载于:https://www.cnblogs.com/LittleTiger/p/10323059.html
-
经典C语言算法之整数反转
2020-09-29 16:26:39C语言算法之整数反转1、问题描述2、题解分析题解心得 1、问题描述 1、给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 2、备注:假设我们的环境只能存储得下 32 位的有符号整数,则其数值... -
C语言算法 欧几里得算法
2018-03-07 16:30:46算法背景:古希腊数学家,亚历山大港的欧几里得所著的《几何原本》,以系统系统论述几何学而著称,在其中的一卷中,他简要概述了一个求最大公约数的算法。算法思想:欧几里得算法的思想是重复使用下列等式,知道n%m=... -
C语言算法的特性
2014-03-22 18:42:04C语言算法有如下特性: 有穷性:一个算法应包含有限的操作步骤而不能是无限的。 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。 有零个或多个输入。 有一个或多个输出。 有效性... -
集装箱的装箱问题(c语言算法)
2011-09-26 09:39:04贪心算法的思想---集装箱的装箱问题(c语言算法) -
c算法大全常用c语言算法,包括数论算法,图论算法、排序算法、高精度计算、树的遍历算法等等
2009-05-15 22:09:57常用c语言算法,包括数论算法,图论算法、排序算法、高精度计算、树的遍历算法等等 -
经典C语言算法之回文数
2020-10-01 11:02:17经典C语言算法题之回文数1、题目描述2、题目解析3、代码编写4、题解心得 1、题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true ... -
C语言算法编程专题(一)
2018-12-18 10:52:13接下来的日子,2018年12月18日至2019年1月底,本次我专门学习C语言算法编程的学习。对此有兴趣的同学可以参考关注一起学习。如有差错,多多指教。 目的: 打好坚实的C语言基础。 期间拓展一些数据结构知识。 期间... -
c语言算法求大神这个错误怎么改?
2016-10-30 08:13:04c语言算法求大神这个错误怎么改?,怎么改,怎么改。。。。怎么改。。。 -
条码CODE128C语言算法
2015-01-04 14:53:56C语言 实现的一维码CODE128编码算法 -
快速傅里叶变换FFT的C语言算法彻底研究
2017-12-26 17:31:40快速傅里叶变换FFT的C语言算法彻底研究 LED音乐频谱显示的核心算法就是快速傅里叶变换,FFT的理解和编程还是比较难的,特地撰写此文分享一下研究成果。 一、彻底理解傅里叶变换 快速傅里叶变换(Fast Fourier... -
汽车加油行驶问题(C语言算法设计与分析)
2010-12-25 23:05:18汽车加油行驶问题(C语言算法设计与分析),里面有完整的代码,并且能正确运行,附带有完整的课程设计说明书。 -
-
相关向量机(RVM)的C语言算法,求大神帮忙?
2016-01-28 09:56:46相关向量机(RVM)的C语言算法实现,不知哪位大神能给与指导…… -
C语言算法描述基础
2020-05-09 21:21:50目录算法1. 算法 定义:算法是一些常见问题的通用解决方法 1. -
C语言入门必学—10个经典C语言算法
2020-05-26 14:56:06C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。... -
c语言算法之贪心算法之着色问题
2020-05-27 20:40:02题目来源:王晓东《算法设计与分析》 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的 贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,... -
HMAC-MD5 C语言算法
2008-10-09 19:58:24HMAC-MD5的c语言实现算法。安全摘要算法。 -
10个经典C语言算法—零基础小白必学
2018-06-08 16:53:43C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。...