当前位置:   article > 正文

数字游戏-蓝桥杯_编程实现:数字游戏 老师给出了一组数,要求小蓝对这组数进行调整,调整的规则如下:

编程实现:数字游戏 老师给出了一组数,要求小蓝对这组数进行调整,调整的规则如下:

问题描述

    给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。
    例如:
    3 1 2 4
    4 3 6
    7 9
    16
    现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。

输入格式

    第1行为两个正整数n,sum

输出格式

    一个1~N的一个排列

样例输入

    4 16

样例输出

    3 1 2 4

数据规模和约定  0<n<=10

思路:先进行全排列

  1. public class 数字游戏 {
  2. private static int ans=0;
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. Scanner scan=new Scanner(System.in);
  6. int n=scan.nextInt();
  7. int sum=scan.nextInt();
  8. int[] arr=new int[n];
  9. for(int i=0;i<n;i++)
  10. {
  11. arr[i]=i+1;
  12. }
  13. f(arr,0,n,sum);
  14. }
  15. public static void f(int[] arr,int k,int n,int sum)
  16. {
  17. if(k==arr.length)
  18. {
  19. if(k==arr.length)
  20. {
  21. int[] arr1=new int[arr.length];
  22. for(int i=0;i<arr.length;i++)
  23. {
  24. arr1[i]=arr[i];
  25. }
  26. if(check(arr1,sum))
  27. {
  28. println(arr);
  29. }
  30. }
  31. }
  32. for(int i=k;i<arr.length;i++)
  33. {
  34. {int temp=arr[i];
  35. arr[i]=arr[k];
  36. arr[k]=temp;}
  37. f(arr,k+1,n,sum);
  38. {int temp=arr[i];
  39. arr[i]=arr[k];
  40. arr[k]=temp;}
  41. }
  42. }
  43. private static boolean check(int[] arr,int sum) {
  44. // TODO Auto-generated method stub
  45. int data = 0;
  46. int n=arr.length;
  47. while(n!=2)
  48. {
  49. for(int i=0;i<n;i++)
  50. {
  51. if(i+1<n)
  52. {
  53. arr[i]=arr[i]+arr[i+1];
  54. }
  55. }
  56. n=n-1;
  57. }
  58. data= arr[0]+arr[1];
  59. if(data==sum)
  60. {
  61. return true;
  62. }
  63. return false;
  64. }
  65. private static void println(int[] arr) {
  66. // TODO Auto-generated method stub
  67. for(int i=0;i<arr.length;i++)
  68. {
  69. System.out.print(arr[i]+" ");
  70. }
  71. System.out.println();
  72. }
  73. }

判断每个排列后的数组是否符合

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/64319
推荐阅读
相关标签
  

闽ICP备14008679号