王道题目日常发布(哥德巴赫猜想,字符串合并)

//删除s-t其中的元素

void del_s_t(ElemType s,ElemType t,SqList &L){

int i,j;

//判断范围

if(s>=t || L.length==0){

printf("Error!");

}

//找到第一个要删除的元素

for(i=0;i

//判断范围

if(i>=L.length)

printf("Error!");

//找到最后一个删除元素的下一个元素

for(j=i;j

//循环将相关元素移动

for(;j

L.data[i]=L.data[j];

}

L.length=i;

}

//自己的想法

void del_s_t_1(ElemType s,ElemType t,SqList &L){

int i,j,k=0;

for(i=0;i

if(L.data[i]>=s && L.data[i]<=t){

k++;

}else{

for(j=0;j

L.data[j+i-k]=L.data[i+j];

}

}

}

L.length-=k;

}

//有序表删除相同元素

void del_key(SqList &L){

int i,j;

for(i=0,j=1;j

if(L.data[i]!=L.data[j]){

L.data[++i]=L.data[j];

}

}

L.length=i+1;

}

//合并两个有序顺序表

bool mergeList(SqList &L1,SqList &L2,SqList L){

int i=0,j=0,k=0;

if(L1.length+L2.length>L.length)

return false;

//只要中间有一个顺序表结束就终止循环

while(i

//L1中元素小于L2元素

if(L1.data[i]<=L2.data[j]){

L.data[k++]=L1.data[i++];

}

//L2中元素小于L1

if(L2.data[j]

L.data[k++]=L2.data[j++];

}

}

//L1中元素剩余

while(i

L.data[k++]= L1.data[i++];

}

while(j

L.data[k++]=L2.data[j++];

}

L.length=k;

}

//p17 9

void reverse(ElemType A[],int left,int right,int arraySize){

int mid=(left+right)/2;

if(left>right || right>arraySize)

return;

for(int i=0;i

ElemType temp=A[left+i];

A[left+i]=A[right-i];

A[right-i]=temp;

}

}

void exchange(ElemType A[],int m,int n,int arrraySize){

reverse(A,0,m+n-1,arrraySize);

reverse(A,0,n-1,arrraySize);

reverse(A,n,m+n-1,arrraySize);

}

//p17 9

void find_x(SqList &L,ElemType x){

int low=0,high=L.length-1,mid;

//折半查找

while(low<=high){

mid=(low+high)/2;

if(L.data[mid]==x){

break;

}else if(L.data[mid]>x){

high=mid-1;

}else{

low=mid+1;

}

}

//直接mid查到

if(L.data[mid]==x && mid<=L.length-1){

int temp=L.data[mid];

L.data[mid]=L.data[mid+1];

L.data[mid+1]=temp;

}

//查不到

if(low>high){

for(int j=L.length;j>=low;j--){

L.data[j]=L.data[j-1];

}

L.data[low]=x;

}

}

//将6-100之间的偶数表示为两个素数之和(哥德巴赫猜想)

void mergeNum(){

int i,j,k,a,b,count=0;

int num[100];

//表示所有偶数

for(i=8;i<=100;i+=2){

//计算每个偶数的素数

for(j=2;j

for(k=2;k

//不是素数

if(j%k==0){

break;

}

}

//是素数

if(k==j){

num[count++]=j;

}

}

//找该元素的所有素数之和

for(a=0;a

for(b=a+1;b

if(num[a]+num[b]==i){

//printf("%d ",count);

printf("%d+%d=%d ",num[a],num[b],i);

}

}

}

printf(" ");

count=0;

}

}

展开阅读全文

页面更新:2024-05-07

标签:哥德巴赫   素数   偶数   之和   王道   字符串   题目   元素   日常   两个   体育

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top