蓝桥杯---等差数列(C语言)

简介: 找出5个数中两数最小之差(假定公差)

蓝桥杯—等差数列

2345_image_file_copy_2.jpg

解决方案:

1.找出5个数中两数最小之差(假定公差)

2.从5个数的最小项开始加公差,加到大于等于5个数的最大项后,看是否遍及5项的每一项。

遍及:确定公差

未遍及:拟公差减一

最坏情况公差为1

#include"stdio.h"
void out(int gc,int a[]){//输出最小项数
  //int ou=a[0];记录等差数列各项
  int sum=0;
  while(ou<=a[4]){
    //printf("%d\n",ou);//输出各项
    sum++;
      //ou=ou+gc;
  }
  printf("%d ",sum);
}
int q(int x,int a[]){//确定数列中是否含有5个数
  int i;
  for(i=1;i<5;i++){
    if(a[i]==x){
      return 1;
    }
  }
  return 0;
}
int w(int s,int a[]){//递归确定公差
  int x=a[0];
    int sum=0;
  while(a[5]>x){
    x=x+s;
    if(q(x,a)){//新数列含5个数中的1个加1
      sum++;
    }
  }
  if(sum==4){
    return s;
  }else{
    return w(s-1,a);
  }
}
int g(int a[]){//
  int i;
  int s=a[1]-a[0];
  for(i=0;i<4;i++){
    if(a[i+1]-a[i]<s){
      s=a[i+1]-a[i];
    }
  }
  return s;//返回最小差(拟公差)
}
int f(int a[]){
  int i,j,t;
  for(i=0;i<4;i++){//排序,便于确定5个数中最大值和最小值
    for(j=i+1;j<5;j++){
      if(a[i]>a[j]){
        t=a[j];
        a[j]=a[i];
        a[i]=t;
      }
    }
  }
  return g(a);
}
int main(){
  int a[5];
  int i;
  int s;//最小之差
  int gc;
  for(i=0;i<5;i++){//录入5个数字
    scanf("%d",&a[i]);
  }
  s=f(a);//获得两数最小之差
  gc=w(s,a);//最小之差,数组a地址,,确定公差
    //printf("%d",gc);
  out(gc,a);
  return 0;
}


相关文章
|
10天前
|
存储 算法 前端开发
2019蓝桥杯大赛省赛Java大学B组 数列求值
2019蓝桥杯大赛省赛Java大学B组 数列求值
6 0
|
26天前
|
Java
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
|
2月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
27 0
|
2月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 数列特征
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 数列特征
24 0
|
2月前
|
存储 算法 C语言
C语言练习记录(蓝桥杯练习)(小蓝数点)
C语言练习记录(蓝桥杯练习)(小蓝数点)
|
10月前
|
机器学习/深度学习 算法
蓝桥杯:递推算法 递归算法 例题:斐波纳契数列
蓝桥杯:递推算法 递归算法 例题:斐波纳契数列
51 0
|
人工智能 C++
第十届蓝桥杯省赛 C++ B/C组 - 等差数列
第十届蓝桥杯省赛 C++ B/C组 - 等差数列
70 0
|
Java
蓝桥杯 基础练习 数列特征(Java)
蓝桥杯 基础练习 数列特征(Java)
56 0
|
Java
蓝桥杯 入门训练 Fibonacci数列 (Java)
蓝桥杯 入门训练 Fibonacci数列 (Java)
62 0
|
C语言
C语言练级之路num5(一些蓝桥杯的小题目)
C语言练级之路num5(一些蓝桥杯的小题目)