算法设计与分析
文章平均质量分 86
壑壑哒
这个作者很懒,什么都没留下…
展开
-
计算两个自然数的最大公约数-短除法、辗转相除法、欧几里得减法
#include <stdio.h>#include <stdlib.h>//短除法int CommonFactor(int m, int n){ int i, flag = 1; for(i = 2; i <= n && i <= m; i++){ //被除数m 除数n while(n % i == 0 &...原创 2018-06-02 13:04:07 · 743 阅读 · 0 评论 -
求至少几个1可以被2013整除
int Division(){ int i = 1,flag = 1; while(i % 2013 != 0){ i = (i % 2013) * 10 + 1; flag ++; } return flag;}测试:int main(){int Num = Division();printf("至少需要%d个1可以被201...原创 2018-06-02 13:08:19 · 2295 阅读 · 0 评论 -
串匹配问题-BF算法、KMP算法、BM算法
BF算法int BF(char A[], char B[]){ int i = 0, j = 0; while(A[i] != '\0' && B[j] != '\0'){ if(A[i] == B[j]){ i++; j++; }else{ i = i - j...原创 2018-06-02 13:24:08 · 1470 阅读 · 1 评论 -
最近对问题-蛮力法、分治法
蛮力法:int ClosestPoints(point p[], int n){ int index1, index2; //记录下标 int d, minDist = 1000; //设最大距离 int i, j; for(i = 0; i < n - 1; i++ ){ for(j = i+1; j < n; j++){ ...原创 2018-06-02 13:31:03 · 2713 阅读 · 1 评论 -
8枚硬币和n枚硬币问题
8枚硬币:void Compare(int a[], int i, int j , int k){//i :较重的 j :较轻的 k:正确的 if(a[i] > a[k]){ printf("第%d 个硬币是假币,偏重\n" , i + 1); }if(a[j] < a[k]){ printf("第%d ...原创 2018-06-02 13:35:19 · 697 阅读 · 1 评论 -
最大子段和问题-蛮力法、分治法、动态规划法
蛮力法:int maxSum1(int a[], int n){ int i; int j; int maxSum = 0; for(i = 0; i < n; i++){ int sum = 0; for(j = i; j < n; j++){ sum += a[j]; ...原创 2018-06-02 13:38:14 · 3707 阅读 · 0 评论 -
货币兑换问题
#include <stdio.h>#include <stdlib.h>int main(){ int m, i, n, j; printf("面值个数:"); scanf("%d", &m); int FaceValue[m+1]; FaceValue[0] = 0; printf("面值:\n");...原创 2018-06-02 13:39:42 · 3082 阅读 · 1 评论