华为机试测试-分苹果-递归

import java.util.Scanner;
public class Main{
      public static void main(String[] args){
          Scanner scanner=new Scanner(System.in);
          int m=scanner.nextInt();
          int n=scanner.nextInt();
          System.out.println(sharingApple(m, n));
          scanner.close();
      } 

      public static int sharingApple(int m,int n)
      {
          if(m==1 || n==1)
              return 1;
          if(m<n)
              return sharingApple(m, m);
          else if(m>n)
              return sharingApple(m-n, n)+sharingApple(m, n-1);
          else
              return 1+sharingApple(m, n-1);
      }
}
时间: 2024-08-29 09:05:39

华为机试测试-分苹果-递归的相关文章

华为机试测试- 最小公倍数

import java.util.*; /*求最大公约数和最小公倍数*/ public class MaxCommonDivisorAndMinCommonMultiple { public static void main(String[] args) { Scanner scan = new Scanner(System.in);// 接收控制台输入的信息 System.out.print("请输入第一个整数:"); int num1 = scan.nextInt(); // 取出

华为机试测试- 大数相加

方法一: 直接使用BigDecimal 方法二:字符串解析,注意stringBuilder.append(int x)这里的x最终会变成x字符串,而不是对应的char. 1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 5 public class Main { 6 public static void main(String[] args) { 7 Scanner scanner=new Scanner(System.

华为机试测试- 字符串最长的数字串

输入 输入一个字符串. 输出 输出字符串中最长的数字字符串和它的长度. 如果数字字符串为空,则只输出0 如 input: dadfsaf  output:0 样例输入 abcd12345ed125ss123058789 样例输出 123058789,9 import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { p

华为机试测试-

验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 1 import java.util.Scanner; 2 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner scanner=new Scanner(System.in); 7 int n=scanner.nextInt(); 8 S

华为机试测试-矩阵乘法-循环

1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner scanner=new Scanner(System.in); 5 int row=scanner.nextInt(); 6 int len=scanner.nextInt(); 7 int column=scanner.nextInt(); 8 int [][] x1=new int[row][

华为机试测试- 质数因子

根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积. import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); Lo

华为机试测试-找偶数的相距最近的素数对

1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner scanner=new Scanner(System.in); 5 int n=scanner.nextInt(); 6 for(int i=n/2;i>=2;i--) 7 { 8 if(isSushu(i) && isSushu(n-i)) 9 { 10 System.out.pri

华为机试测试- 求有序数组中最长的等差序列

原题目是求一个无序数组中最长的等差数列. 求随机数构成的数组中找到长度大于=3 的最长的等差数列, 输出等差数列由小到大:如果没有符合条件的就输出格式:输入[1,3,0,5,-1,6]输出[-1,1,3,5] 思路: 1.排序 2.d的取值范围是[0,max-min],共有max-min+1种情况 3.对每一种情况进行查找 4.对于公差d,要求最长的等差序列,需要两个循环,一个外循环从头到尾遍历,内循环从外循环的起始遍历点开始利用公式 arr[i]=arr[start]+len*d,假如符合就长

华为机试测试-dna-字符串

一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非常重要.因为高的GC-Ratio可能是基因的起始点. 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列. 输入 输入一个string型基因序列,和int型子串的长度 输出 找出GC比例最高的字串 样例输入 AACTGTGCACGACCTGA 5 样例输