算法问题
Object_in_java
这个作者很懒,什么都没留下…
展开
-
C++ 矩阵运算
C++ 矩阵的各种算法 逆矩阵 高斯 转置矩阵 矩阵运算 矩阵运算大全原创 2022-01-02 16:41:06 · 1294 阅读 · 3 评论 -
双向循环链表解决约瑟夫环(C语言)
第1题#include<stdio.h>#include <stdlib.h>typedef struct student{ int passwd; int id; struct student* nextStudent; struct student* preStudent;};struct student* create(int n){ //id从1开始 int nid = 1; printf("请依次输入密码\n"); student*原创 2020-12-15 22:08:01 · 633 阅读 · 0 评论 -
桶排(C语言)
#include<stdio.h>int main(void){ int a[]={1,3,5,9,2,4,10,8,7}; int aLen = sizeof(a)/sizeof(int); //求最大值防止越界 int max = a[0]; for(int i = 0;i < aLen;i++){ if(a[i] > max) max = a[i]; } //b数组为桶 int bLen = max + 1; int b[bLen]={0原创 2020-11-02 14:31:40 · 648 阅读 · 2 评论 -
插入排序 (C语言)
#include<stdio.h>void insertionSort(int a[],int len){ for(int i=1,j;i<len;i++){ int key = a[i]; for(j=i-1;j>=0&&key<a[j];j--){ a[j+1] = a[j]; } a[j+1] = key;//记得加1,因为j相比边界多减了一个 }}//分开的写法,可能更便于理解//void insert(int a[]原创 2020-10-10 18:37:48 · 156 阅读 · 0 评论 -
选择排序 (C语言)
#include<stdio.h>void Selection (int a[],int len){ for(int i=0;i<len-1;i++){ //i代表子序列的第一位,一开始子序列等于整个序列,i<len-1并不是防止越界,而是没有必要 int min = a[i];//这一步很巧妙,与最后的赋值互相呼应 int minIndex = i; for(int j=i;j<len;j++){//每次选择一个最小的放在子序列第一位 if(a[j]原创 2020-10-10 17:31:46 · 125 阅读 · 0 评论 -
冒泡排序 (C语言)
#include<stdio.h>int *bubble(int a[],int len){// int len = sizeof(a)/sizeof(int); //这样写是错误的,因为a传进来的是个指针,sizeof(a)是8 for(int i=0;i<len-1;i++) for(int j=0;j<len-1;j++) if(a[j]>a[j+1]){ int t = a[j]; a[j] = a[j+1]; a[j+1] =原创 2020-10-10 16:47:41 · 1710 阅读 · 5 评论 -
java分解质因数,求质因数个数(continue在for循环下需要注意的事情)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int res = 0; int i; for (i = 2;i <= n;i++) {//i从2开始,因为n动原创 2020-10-10 12:08:52 · 767 阅读 · 1 评论 -
兔子问题(斐波那契数列)的迭代实现与递归实现
某个月兔子的数量=上个月兔子数+这个月出生的兔子数这个月出生的兔子数=上上个月的兔子数(根据题意可知此时且这个月的兔子全是上上个个月的兔子生的,因为上上个月的兔子是刚好到这个月所有兔子都成熟的,所以可以理解为这个月的新生兔子是上上个月的兔子数量)。写成递推公式就是:f(n)=f(n-1)+f(n-2).其实就是一个斐波那契数列代码的话1:可以一开始定义一个数组,把每个月的兔子数都存进去,最后然后通过索引输出n个值。2:也可以每次输入一个月份后,用两个变量(三个也行)从头迭代到该月份,然后输出原创 2020-10-09 12:57:06 · 914 阅读 · 0 评论 -
试管问题(求递推公式)MATRIX MULTIPLICATION CALCULATOR
Eli is a teenager who loves to study chemistry. She recently joined a chemistry research lab.Dr. Phil wants her to just play around with some chemicals and observe their reaction.Therefore, he gave her a one-row tray of test tubes with the different chem原创 2020-10-02 15:04:14 · 217 阅读 · 0 评论 -
C语言实现矩阵的相乘
#include<stdio.h>int main(){ int m,n,p,q,count=0; while(~scanf("%d %d %d %d",&m,&n,&p,&q)){ if(m==0&&n==0&&p==0&&q==0) break; count++; int a[m][n]={0},b[p][q]={0},c[m][q]={0}; for(i原创 2020-10-02 13:28:34 · 186 阅读 · 3 评论 -
C语言最大子列和(多版本)
//O(n^3)int MaxSubSum(int A[],int n){ int sum,max=0; for(int i=0;i<n;i++){ for(int j=i;j<n;j++){sum=0;//i,j分别为子列左端右端 for(int k=i;k<=j;k++){//sum为A[i]到A[j]的子列和 sum+=A[k]; } if(sum>max) max=sum; } } return sum; }//O原创 2020-06-17 09:53:15 · 189 阅读 · 0 评论 -
打印质数(C语言)
#include<stdio.h>int main(){ int i,j,a,b; scanf("%d %d",&a,&b); for(i=a;i<=b;i++){ for(j=2;j<i;j++){// if(i/j==i*1.0/j){// break;// } if(i%j==0) break; } if(j==i) printf("%d\n",i); } return 0;}原创 2020-06-17 09:39:46 · 549 阅读 · 0 评论 -
C语言字符串去空格(最简单版本)
#include<stdio.h>char* despace(char *a){ int i=0;char *b=a; while(a[i++]!='\0'){ if(a[i]==' '){ for(int j=i;j>=1;j--){ a[j]=a[j-1]; } b++; } } return b;}int main(){ char a[]="a b cd efg";//不可以用指针,会指向常量区字符串,导致可以访问但无法改变 p原创 2020-06-17 09:38:35 · 1024 阅读 · 1 评论