第一周:A1=? + Find your present(2)

题目一:A1=?

问题描述:

有如下方程:Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n).

若给出A0, An+1, 和 C1, C2, .....Cn.

请编程计算A1 = ?

思路:

本来是想用数列的方法消去多余的项,最终只剩下a0,a1和a(n+1),从而求出最终的a1,但发现此法并不可行;于是只能找规律:

当n=1时,;

当n=2时,;

当n=3时,;

所以,。

代码只要赋值结束,直接套公式即可:


Problem - 2086

题目二:Find  your present(2)(这道题跟2019“传智杯”比赛c/c++组第1题一样的,跟第四天的思路也极为类似)

问题描述:

In the new year party, everybody will get a "special present".Now it's your turn to get your special present, a lot of presents now putting on the desk, and only one of them will be yours.Each present has a card number on it, and your present's card number will be the one that different from all the others, and you can assume that only one number appear odd times.For example, there are 5 present, and their card numbers are 1, 2, 3, 2, 1.so your present will be the one with the card number of 3, because 3 is the number that different from all the others.

(翻译)在新年派对上,每个人都会得到一份“特别礼物”。现在轮到你去拿你的特别礼物了,桌上放了很多礼物,只有一个是你的。每个礼物上都有一个卡片号码。而你现在的卡号将是一个不同于所有其他的,你可以假设只有一个数字出现奇数倍。例如,存在有5个,它们的卡号是1,2,3,2,1。所以你的礼物将会是一张有3的卡片,因为3是和其他所有卡片不同的数字。

输入:

1.输入文件将由几个情况组成。

2.每个情况一开始都会以整数N(1<=N<1000000,N为奇数)表示。接著,N个正整数会以一行给出,所有整数会小于2^31。这些数字表示当前的卡号。n=0结束输入。

输出:

对于每个情况,在一行中输出一个整数,该整数是当前的卡号。

思路:

用循环分别录入每个礼物卡片上的数组,用两个数组分别存放不同的数字以及该数字对应的数量,最后输出数量为奇数的数字。

代码如下:



Problem - 2095

你可能感兴趣的:(第一周:A1=? + Find your present(2))