1 条题解
-
0
C :
#include<stdio.h> int main() { int a[100],b[100],c[200]; int i,j,m,n,k; while(scanf("%d",&m)!=EOF) { for(i=0;i<m;i++) { scanf("%d",&a[i]); } scanf("%d",&n); for(j=0;j<n;j++) { scanf("%d",&b[j]); } i=j=k=0; while(i<m&&j<n) { if(a[i]<=b[j]) c[k++]=a[i++]; else c[k++]=b[j++]; } if(i<m) { for(;i<m;i++,k++) c[k]=a[i]; } if(j<n) { for(;j<n;j++,k++) c[k]=b[j]; } for(i=0;i<k;i++) { if(i) putchar(' '); printf("%d",c[i]); } putchar('\n'); } return 0; }
C++ :
#include <stdio.h> int main(){ int m, n; int La[100], Lb[100], Lc[200]; // 定义存储空间,Lc需要La和Lb总和的空间 int i, j, k; while(scanf("%d", &m) != EOF){ // 读入 La for(i=0;i<m;i++){ scanf("%d", &La[i]); } // 读入 Lb scanf("%d", &n); for(i=0;i<n;i++){ scanf("%d", &Lb[i]); } // 归并 i = j = k = 0; while(i<m && j<n){ if(La[i] < Lb[j]){ Lc[k] = La[i]; i++; }else{ Lc[k] = Lb[j]; j++; } k++; } // 处理没有在归并中处理的数据 while(i < m){ Lc[k++] = La[i++]; } while(j < n){ Lc[k++] = Lb[j++]; } // 输出结果 for(k=0;k<m+n;k++){ if(k){ putchar(' '); } printf("%d", Lc[k]); } putchar('\n'); } return 0; }
Java :
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); ; int m,n,i,j1,j2; int[] a=new int[100]; int[] b=new int[100]; int[] ab=new int [200]; while(in.hasNext()){ j1=0; j2=0; m=in.nextInt(); for(i=0;i<m;i++){ a[i]=in.nextInt(); } n = in.nextInt(); for(i=0;i<n;i++){ b[i] =in.nextInt(); } for(i=0;i<m+n;i++){ if((j1<m&&j2<n&&a[j1]<b[j2])||(j1<m&&j2>=n)){ ab[i]=a[j1++]; }else{ ab[i]=b[j2++]; } } for(i=0;i<m+n;i++){ System.out.print(ab[i]); if(i<m+n-1) System.out.print(" "); else System.out.println(); } if(m==0&&n==0) System.out.println(); } } }
- 1
信息
- ID
- 1663
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者