微众银行笔试题
第一题
/* 大哥在直播的时候经常被粉丝刁难。今天粉丝们在弹幕上问他的问题是:从公元a年1月到公元b年12月有多少个月份满足该月的第一天是星期一。大哥不会数数,所以装作掉线后找到了你来帮他答题,请你以最快的速度帮帮他。 输入描述 两个正整数满足1900<=a<=b<=2100 输出描述 输出公元a年1月到公元b年12月有多少个月份满足该月的第一天是星期一。 样例输入 2021 2021 样例输出 3 提示 2021年1月1日是星期五。2021年的二月,三月和十一月都满足条件。 */第二题
/* 第 i 行有 i 个数,位置居中对齐。显然,除了最后一行的点,每个点的下方都有两个点与它相邻,本题并不是关于三角形数的问题,而是与这个性质有关。 给你若干个点,按照上图中的方式排列(保证排满,即点的个数是三角形数)。你一开始位于第一行的点,身上带有一个数 1。然后你要一行一行地往下走,每一步可以走到下方两个相邻点中的一个,走 n-1 步可到达终点(底部)。 除了第一行的点以外,每个点上带有一个效果,它可能是如下几种中的一种: + x:使你身上的数加 x - x:使你身上的数减 x / x:使你身上的数除以 x,向远离0的方向取整,正数向上,负数向下 s:如果的身上的数为正数,则开平方根,向上取整。如果为负数,则取相反数,进行如上操作,再取相反数,如 8 经过 s 操作为 3,-8 则变为 -3。 n:使你身上的数变为它的相反数,即乘 -1 显然,从起点到一个点的路径并不一定是唯一的,到这个点时身上的值也不一定唯一。你的任务是计算以最后一行的每个点为终点时,可能的最大值和最小值 输入描述 第一行一个正数 n,表示三角形的层数。(n <= 400) 后面 n*(n+1)-1 行,每行有 “+ x” “- x” “/ x” “s” “n” 中的一种,运算符和数之间有一个空格,作用详见问题描述,按从上到下,从左到右的顺序表示除第一行以外的各点上的效果。(0 < x <= 1000000000) 输出描述 两行,每行 n 个整数,用空格隔开。 第一行依次表示最后一行从左到右各点作为终点时的最大值。 第二行依次表示最后一行从左到右各点作为终点时的最小值。 样例输入 3 + 2 n / 2 - 5 s 样例输出 2 -2 -1 2 -6 -1 */第三题
/* 大胃王也不是一开始就是大胃王的。有一个大胃王,他的食量每天都会增加,第一天他只吃1单位的食物,但是第二天就会吃2单位,第三天就会吃3单位,以此类推,第i天吃i单位食物。 已知大胃王的厨房有n只不同单位重量的鸡,每天大胃王会吃一只,如果这只鸡可以满足大胃王的需要,那么什么事情都不会发生,如果这只鸡的重量小于大胃王的食量,大胃王就会暴怒,没有人可以承受大胃王的怒火。 请问大胃王会在哪一天暴怒,如果所有鸡都吃完了,大胃王也会暴怒。 输入描述 输入第一行是一个正整数n,表示鸡的数量。(1<=n<=50000) 接下来一行有n个正整数,分别表示这n只鸡的重量。 输出描述 输出仅包含一个正整数,即大胃王暴怒的时间点。 样例输入 6 1 3 3 3 4 4 样例输出 5 */