每日一练--(陶陶摘苹果)(n边形划分)

简介: 每日一练--(陶陶摘苹果)(n边形划分)

题目名称陶陶摘苹果  

时间限制:1000ms内存限制:256M

题目描述

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有一个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。


输入描述:


输入包括两行数据。第一行包含 10 个 100 到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。


输出描述:


输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。


示例


输入100 200 150 140 129 134 167 198 200 111 110


输出 5


解题思路:


通过阅读题目,我们知道,简而言之就是比较一个数和数组里面的数比较大小。这里,数组就要用到for (int i = 0; i < 10; i++),我们知道arr[i]表示数组里面的数,然后我们用result自增就可以了。


数组(Array)是一种用来存储同一种类型的集合,是一种有序的线性结构表。并且数组元素的地址是连续的。


数组最大的优点就是支持随机访问,当想访问数组的某个数时,只需要找到数组的对应下标就可以直接找到该数组对应元素。但是数组也有相应的缺点,那就是数组的元素个数和数组空间大小在创建时就已经被固定死了,如果数组的空间没有使用完也会造成空间浪费,并且因为数组的地址是连续的,这本应该是一个优点的,但是这导致数组在进行删除或增加元素时需要O(n)才能完成。


数组的下标


数组下标是从0开始的,假设,访问arr[5]元素时,访问的是数组的第6个元素,访问arr[0]时,访问的是数组的第一个元素。


今天我们主要了解一下一维数组就可以了,二维数组下次碰到了再说。


一维数组是常见的数组,创建方法是:数据类型 + 数组名 [ 元素个数 ];


1


int arr[10];


在C99的标准之前,当数组在创建时,方括号内的数组元素个数只能是常量,使用的常量也必须是真正意义上的常量,比如用const修饰的变量有了常属性,但不是真正意义的常量,而由define定义的常量可以用来做数组元素个数。而C99之后数字方括号内的元素可以使用变量,而使用变量的做数组元素个数的数组,叫做变长数组。


#include <stdio.h>
int solution(int m, int arr[10]){
    int result=0;
    for (int i = 0; i < 10; i++)
    {
        if (arr[i]<=m+30)
        {
            result++;
        }
    }
    return result;
}
int main() {
    int arr[10];
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
    }
    int m;
    scanf("%d", &m);
    int result = solution(m, arr);
    printf("%d", result);
    return 0;
}

题目名称:n边形划分

时间限制:1000ms内存限制:256M

题目描述

已知存在n多边形,n为奇数。 连接多边形所有对角线。 能形成多少区域。


输入描述:

给定整数n。(1<=n<=1e9)


输出描述:

输出区域数,对1e9+7取模


示例

输入5

输出11


代码如下,在本地运行没有问题,不晓得为什么通过不了编译。如果大家有更好的可以在评论区留下你的回答。

#include <stdio.h>
int solution(int m){
    int result;
if (m%2==0)
    result=0;
else result=((m-1)*(m-2)*(m*m-3*m+12))/24;// TODO: 请在此编写代码
    return result;
}
int main() {
    int m;
    scanf("%d", &m);
    int result = solution(m);
    printf("%d", result);
    return 0;
}

在这里我在放一个python的解法。

n=input();
n=eval(n);
n=n*n*n*n-6*n*n*n+23*n*n-42*n+24;
n=n//24;
print(n);

其实,这个和编程题联系不大,有点想奥数的感觉。


相关文章
|
9月前
团体程序设计天梯赛-练习集L2篇⑦
团体程序设计天梯赛-练习集L2篇⑦
43 0
|
7月前
|
算法 Java
【洛谷算法题】P5703-苹果采购【入门1顺序结构】
【洛谷算法题】P5703-苹果采购【入门1顺序结构】
|
8月前
|
C++
陶陶摘苹果(升级版)c++(基础分开算)
陶陶摘苹果(升级版)c++(基础分开算)
72 0
|
9月前
|
Perl
团体程序设计天梯赛-练习集L1篇③
团体程序设计天梯赛-练习集L1篇③
103 0
|
9月前
|
测试技术
团体程序设计天梯赛-练习集L2篇⑥
团体程序设计天梯赛-练习集L2篇⑥
62 0
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
137 0
|
算法
算法竞赛入门做题记录:苹果采购
算法竞赛入门做题记录:苹果采购
216 0
团体程序设计天梯赛-练习集 - L2-028 秀恩爱分得快(25 分)
团体程序设计天梯赛-练习集 - L2-028 秀恩爱分得快(25 分)
231 0
团体程序设计天梯赛-练习集 - L2-012 关于堆的判断(25 分)
团体程序设计天梯赛-练习集 - L2-012 关于堆的判断(25 分)
75 0
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)
77 0
团体程序设计天梯赛-练习集 - L3-016 二叉搜索树的结构 (30 分)