算法提高 连接乘积

时间限制:1.0s 内存限制:256.0MB

问题描述

  192这个数很厉害,用它分别乘以1、2、3,会得到:

  192 x 1 = 192

  192 x 2 = 384

  192 x 3 = 576

  把这三个乘积连起来,得到192384576,正好是一个1~9的全排列

  我们把上面的运算定义为连接乘积:

  m x (1 … n) = k(其中m > 0 且 n > 1,对于上例,m = 192、n = 3、k = 192384576)

  即k是把m分别乘以1到n的乘积连接起来得到的,则称k为m和n的连接乘积。

  按字典序输出所有不同的连接乘积k,满足k是1~9的全排列

输出格式

  每个k占一行

样例输出

显然,结果中应包含一行:

192384576

  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. public class 连接乘积 {
  5. public static List<Integer> list = new ArrayList<Integer>();
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. char[] chs = {'1','2','3','4','5','6','7','8','9'};
  9. //f(chs,0);
  10. //Collections.sort(list);
  11. Object[] a = {123456789, 192384576, 219438657, 273546819, 327654981, 672913458, 679213584, 692713854, 726914538, 729314586, 732914658, 769215384, 792315846, 793215864, 918273645, 926718534, 927318546, 932718654};
  12. for(int i = 0;i < a.length;i++){
  13. System.out.println(a[i]);
  14. }
  15. }
  16. public static void f(char[] a,int k){
  17. if(k == a.length){
  18. auth(a);
  19. return;
  20. }
  21. for(int i = k;i < a.length;i++){
  22. char ch = a[i]; a[i] = a[k]; a[k] = ch;
  23. f(a,k+1);
  24. ch = a[i]; a[i] = a[k]; a[k] = ch;
  25. }
  26. }
  27. public static void auth(char[] data){
  28. String str = new String(data);
  29. for(int i = 1;i <= str.length();i++){
  30. String t = str.substring(0, i);
  31. int n = Integer.valueOf(t);
  32. StringBuffer buffer = new StringBuffer();
  33. for(int j = 1;j <= 9;j++){
  34. int tmp = n * j;
  35. buffer.append(String.valueOf(tmp));
  36. if(buffer.toString().equals(str) && j > 1){
  37. list.add(Integer.valueOf(buffer.toString()));
  38. break;
  39. }else if(buffer.toString().equals("0") || hasR(buffer.toString())){
  40. break;
  41. }
  42. }
  43. }
  44. }
  45. public static boolean hasR(String str){
  46. char[] chs = str.toCharArray();
  47. Arrays.sort(chs);
  48. for(int i = 0;i < chs.length - 1;i++){
  49. if(chs[i] == chs[i+1])
  50. return true;
  51. }
  52. return false;
  53. }
  54. }

Java实现 蓝桥杯VIP 算法提高 连接乘积的更多相关文章

  1. Java实现 蓝桥杯VIP 算法提高 最小乘积(提高型)

    算法提高 最小乘积(提高型) 时间限制:1.0s 内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最 ...

  2. Java实现 蓝桥杯VIP 算法提高 传染病控制

    算法提高 传染病控制 时间限制:1.0s 内存限制:512.0MB 问题描述 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的 ...

  3. Java实现 蓝桥杯VIP 算法提高 多项式输出

    算法提高 多项式输出 时间限制:1.0s 内存限制:512.0MB 问题描述 一元n 次多项式可用如下的表达式表示: f(x)=a[n]xn+a[n-1]x(n-1)+-+a[1]x+a[0], a[ ...

  4. Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪

    试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...

  5. Java实现 蓝桥杯VIP 算法训练 连接字符串

    算法训练 连接字符串 时间限制:1.0s 内存限制:512.0MB 编程将两个字符串连接起来.例如country与side相连接成为countryside. 输入两行,每行一个字符串(只包含小写字母, ...

  6. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  7. Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积

    算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...

  8. Java实现 蓝桥杯VIP 算法提高 5-3日历

    算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为 ...

  9. Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素

    算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内 ...

随机推荐

  1. LabVIEW(数据库自动编号)

    数据库如果字段是自动编号,则在插入数据时,可以不考虑.

  2. web2

    0x01 <?php $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; funct ...

  3. docker 垃圾回收机制

    docker垃圾回收机制 作者: 张首富 时间: 2019-04-10 个人博客: www.zhangshoufu.com QQ群: 895291458 说明 对于Docker来说,存在镜像/容器/存 ...

  4. 解决 es CircuitBreakingException 问题

    比如频繁报如下错误, [2019-06-16T15:31:22,778][DEBUG][o.e.a.a.c.n.i.TransportNodesInfoAction] [node-xxx] faile ...

  5. vue-cli项目上传到github预览问题

    上传前先npm run build 后git push origin master 问题:chunk无法加载? 原因:在github.io请求chunk时,chunk的url使用的是publicPat ...

  6. 剑指Offer02之替换空格

    剑指Offer02之替换空格 题目描述 实现一个方法,将输入的字符串中的空格替换成%20. 例子如下 hello world --> hello%20world 代码实现 //方法一 采用Jav ...

  7. reids不重启切换rdb到aof

    reids不重启切换rdb到aof

  8. Django之MTV模式

    MTV与MVC+url控制器 MVC框架: ·         M:model.py  就是和数据库打交道用的,创建表等操作 ·         V:View  视图(视图函数:逻辑处理响应函数,ht ...

  9. H3C S5500V2交换机误格式化恢复

    一.格式化后,bin文件及视图全部被删除需要联系H3C客服报交换机后面的序列号,然后根据工单中给你的账号密码去H3C官网下载对应的软件包. 二.下载3CDaemon使用TFTP方式将解压出来的.ipe ...

  10. ShoneSharp语言(S#)软件更新13.7版

    ShoneSharp语言(S#)编辑解析运行器 软件更新13.7版 作者:Shone 近期在写博客过程中对S#进行增强,把语法规则更新到2.0版,并同步更新软件到ShoneSharp.13.7.exe ...