XDOJ—2,38,46,47—数列分段,回文数,折点数,冰箱温度预测

XDOJ—2,38,46,47—数列分段,回文数,折点数,冰箱温度预测

2019.12.29日

数列分段

问题描述
  给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
输入格式
  输入的第一行包含一个整数n,表示数列中整数的个数。
  第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。
输出格式
  输出一个整数,表示给定的数列有多个段。
样例输入
8
8 8 8 0 12 12 8 0
样例输出
5
样例说明
  8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。
评测用例规模与约定
1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。

#include<stdio.h>
int main()
{
int n;
int a[1000];
int i,c=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n-1;i++)
{
if(a[i]!=a[i+1])
c++;
}
printf("%d",c);
return 0;
}

回文数

类别
数组

时间限制
2S

内存限制
1000Kb

问题描述
若一个非负整数其各位数字按照正反顺序读完全相同,则称之为回文数,例如12321。
判断输入的整数是否是回文数。若是,则输出该整数各位数字之和,否则输出no。

输入说明
输入为一个整数n,0<=n<1000000000。

输出说明
若该整数为回文数,则输出整数各位数字之和,否则输出no。

输入样例
样例1输入
131
样例2输入
24

输出样例
样例1输出
5
样例2输出
no
标题
折点计数

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点,其他的天都不是折点。如图所示,第3天和第6天是折点。

给定n个整数a1, a2, …, an表示连续n天中每天的销售量。请计算出这些天总共有多少个折点。

输入说明
输入的第一行包含一个整数n。
第二行包含n个整数,用空格分隔,分别表示a1, a2, …, an。
3 ≤ n ≤ 100,每天的销售量是不超过1000的非负整数。为了减少歧义,输入数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1≠ai。

输出说明
输出一个整数,表示折点数量。
输入样例
7
5 4 1 2 3 6 4

输出样例
2

#include <stdio.h>
int main(void)
{
    int n, left, mid, right, sum=0;
    scanf("%d", &n);
    if(scanf("%d%d", &left, &mid) != EOF) 
	{
        for(int i=3; i<=n; i++) 
		{
        	scanf("%d", &right);
			if(left < mid && mid > right)
                sum++;
            else if(left > mid && mid < right)
                sum++;
			left = mid;
            mid = right;
        }
    }
    printf("%d\n", sum);
    return 0;
}

冰箱温度预测

类别
基本计算

时间限制
1S

内存限制
256Kb

问题描述
编写一个程序,用于预测冰箱断电后经过时间t(以小时为单位)后的温度T。已知计算公式如下所示

输入说明
输入两个整数h和m表示冰箱断电后经过的时间,h表示小时,m表示分钟

输出说明
输出冰箱断电后经过时间t(以小时为单位)后的温度T,保留两位小数

输入样例
2 0
输出样例
-16.00

#include<stdio.h>
int main()
{
	int h,m;
	double t,T;
	scanf("%d %d",&h,&m);
	t=h+m/60.0;
	T=(4*t*t/(t+2.0))-20.0;
	printf("%.2f",T);
	return 0;
}
发布了47 篇原创文章 · 获赞 2 · 访问量 1335

猜你喜欢

转载自blog.csdn.net/qq_45550139/article/details/103746971