蓝桥杯冲刺的第六天 我可以
** 我可以,我能行,我还能一打百题 **
等差数列
题目表述:
编程分析:
- 首先我们的数字长度是随机的不确定的,所以要用输入循环
- 给的数可能为乱序
- 找到最少等差数列
解决思考
- 首先我们需要建立循环输出并将它们保存起来,我用的是一个数组。
- 然后我们需要给这个数排序,以方便找到最小差值来作为我们等差数列的公差
- 利用公式 n=(an-a1)/d +1 来求的我们要的个数
代码如下:
#include "stdio.h"
#include "stdlib.h"
//数组排序
int inc(const void *a, const void *b){
return *(int *)a - *(int *)b;
}
int main()
{
int i;
int n;
int cont;//记录个数
scanf("%d",&n);
int s[n];
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
//引用函数
qsort(s, n, sizeof(int), inc);
// for (int i = 0; i < n; i++){
// printf("%d ", s[i]);
// }
//计算最小等差
int a[n-1];
for(i=0;i<n-1;i++){
a[i] = s[i+1]- s[i];
}
qsort(a, n-1, sizeof(int), inc);
// for (int i = 0; i < n; i++){
// printf("%d ", a[i]);
// }
// printf("\n%d",a[0]);
cont = (s[n-1]-s[0])/a[0] +1;
printf("\n%d",cont);
return 0;
}
当然这个代码可能不够好,明显的问题是输入格式有问题,但能力如此了也想了好久,,,以后的日子慢慢加油吧
巧排扑克牌
一张图你就秒懂 拒绝花里胡哨的。
对,在纸上或者excel上直接演练就行了 对于填空题来说也算是小技巧吧。
当然赛下写出来更好。
今日诗歌摘要:
海到尽头天作岸,山登绝顶我为峰。《涅槃重生》
版权声明:本文为weixin_61383086原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。