输入两个整数,求这两个整数的和是多少。
输入格式输入两个整数A,B,
用空格隔开输出格式输出一个整数,
表示这两个数的和数据范围
0≤A,B≤108
样例输入:3 4
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。
第 i 件物品的体积是 vi,价值是 wi。
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
输出最大价值。
输入格式
第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。
接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。
输出格式
输出一个整数,表示最大价值。
数据范围 输入样例 给你一根长度为 n 绳子,请把绳子剪成 m 段(m、n 都是整数,2≤n≤58 并且 m≥2)。 每段的绳子的长度记为 k[1]、k[2]、……、k[m]。 k[1]k[2]…k[m] 可能的最大乘积是多少? 例如当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到最大的乘积 18。 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。 首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。 然后,让这 n 位大臣排成一排,国王站在队伍的最前面。 排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是: 排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。 注意,国王的位置始终在队伍的最前面。 输入格式 第二行包含两个整数 a 和 b,之间用一个空格隔开,分别表示国王左手和右手上的整数。 接下来 n 行,每行包含两个整数 a 和 b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。 输出格式 数据范围 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 数据范围 [ 如果输入查找数值为7,则返回true, 如果输入查找数值为5,则返回false。 输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。 注意: 二叉树中每个节点的值都互不相同; 样例 返回:[3, 9, 20, null, null, 15, 7, null, null, null, null] 例如输入 12,从 1 到 12 这些整数中包含 “1” 的数字有 1,10,11 和 12,其中 “1” 一共出现了 5 次。 数据范围 例如输入 12,从 1 到 12 这些整数中包含 “1” 的数字有 1,10,11 和 12,其中 “1” 一共出现了 5 次。 数据范围 求 1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 (A?B:C)。 样例 求 a 乘 b 对 p 取模的值。 输入格式 输出格式 数据范围 定义:几个自然数公有的约数,叫这个数的公约数;其中最大的这个数是最大公约数。 递归是进行函数调用本身的技术。这种技术提供了一种将复杂问题分解为更容易解决的简单问题的方法。
0
4 5
1 2
2 4
3 4
4 5
输出样例: 8
剪绳子
国王游戏
第一行包含一个整数 n,表示大臣的人数。
输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。
1≤n≤1000
0 输入样例:
3
1 1
2 3
7 4
4 6
输出样例: 2
二维数组中的查找
二维数组中元素个数范围 [0,1000]
样例
输入数组:
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]重建二叉树
输入的前序遍历和中序遍历一定合法;
数据范围
树中节点数量范围 [0,100]。
给定:
前序遍历是:[3, 9, 20, 15, 7]
中序遍历是:[9, 3, 15, 20, 7]
返回的二叉树如下所示:
3
/
9 20
/
15 7
输入一个整数 n,求从 1 到 n 这 n 个整数的十进制表示中 1 出现的次数。
1≤n≤109
样例
输入: 12
输出: 5
输入一个整数 n,求从 1 到 n 这 n 个整数的十进制表示中 1 出现的次数。
1≤n≤109
样例
输入: 12
输出: 5
解法一:暴力求解
最直观的做法,就是累加1 ~ n中每个整数出现1的次数,我们可以通过对10求余数判断整数的个位数字是不是1,如果这个数字大于10,则除以10之后再判断个位数字是不是1。
解法二:数位统计
我们假设 n = abcdef,其中等号右边a为19中的某个数字,其余的可为09中某个数字,我们需要做的就是统计每个位上,如个位、十位、百位…上能出现1的次数的总和。
求1+2+…+n
数据范围
1≤n≤50000。
输入:10
输出:5564位整数乘法
第一行输入整数a,第二行输入整数b,第三行输入整数p。
输出一个整数,表示a*b mod p的值。
1≤a,b,p≤1018
输入样例:
3
4
5
输出样例:
2
求m,n最大公约数
“欧几里得算法”:是求最大公约数的算法
求两个数的最大公约数:如果m > n,令余数remainder = m%n,如果余数不为0,则令m = n, n = remainder,再次remainder = m%n,直到remainder = 0,此时n就是最大公约数。
求多个数的最大公约数:先求出其中两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个为止,最后所得的那个最大公约数,就是所求的几个数的最大公约数
JAVA 中的递归
以上写法是在方法中无特定条件的情况下调用自身的方法会发生"栈帧内存溢出 "= 内存溢出
这里以5的乘阶为例