蓝桥杯---等差数列(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;
}


相关文章
|
2月前
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
116 0
|
6月前
|
存储 算法 前端开发
2019蓝桥杯大赛省赛Java大学B组 数列求值
2019蓝桥杯大赛省赛Java大学B组 数列求值
22 0
|
6月前
|
Java
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
P9242 [蓝桥杯 2023 省 B] 接龙数列JAVA,边权为1的最短路问题,洛谷P9242 [蓝桥杯 2023 省 B] 接龙数列​编辑力扣1926.迷宫离入口最近的出口力扣433.
|
7月前
|
C语言
斐波那契数列(C语言)
斐波那契数列(C语言)
斐波那契数列(C语言)
|
7月前
|
C语言
每天一道C语言编程(3):有规律的数列输出
每天一道C语言编程(3):有规律的数列输出
71 0
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 Fibonacci数列
41 0
|
7月前
|
存储 算法 C语言
C语言练习记录(蓝桥杯练习)(小蓝数点)
C语言练习记录(蓝桥杯练习)(小蓝数点)
|
7月前
|
算法 搜索推荐 程序员
C语言第三十一练——递归求解n位斐波那契数列
C语言第三十一练——递归求解n位斐波那契数列
50 0
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 数列特征
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 数列特征
36 0
|
7月前
|
算法 C语言
C语言汉诺塔数列(循环版,递归版)
C语言汉诺塔数列(循环版,递归版)
84 0