博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
历届试题 带分数 全排列模板 JAVA
阅读量:5825 次
发布时间:2019-06-18

本文共 2048 字,大约阅读时间需要 6 分钟。

标题:带分数

    100 可以表示为带分数的形式:100 = 3 + 69258 / 714

    还可以表示为:100 = 82 + 3546 / 197

    注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。

    类似这样的带分数,100 有 11 种表示法。

题目要求:

从标准输入读入一个正整数N (N<1000*1000)
程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意:不要求输出每个表示,只统计有多少表示法!

例如:
用户输入:
100
程序输出:
11

再例如:

用户输入:
105
程序输出:
6

资源约定:
峰值内存消耗(含虚拟机) < 64M
CPU消耗  < 3000ms

 

这一题主要是熟悉全排列和数字的组合。

1 import java.util.Scanner; 2  3 public class A { 4  5     static int vis[] = new int[1000 * 1001]; 6     static int a, b, c, ans; 7  8     public static void main(String[] args) { 9         int[] num = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9 };10         Scanner scanner = new Scanner(System.in);11         int n = scanner.nextInt();12         per(num, 0);13         System.out.println(vis[n]);14     }15 16     public static void per(int[] num, int start) {17         if (start == num.length) {18             ser(num);19             return;20         }21         for (int i = start; i < num.length; i++) {22             swap(num, start, i);23             per(num, start + 1);24             swap(num, start, i);25         }26     }27 28     public static void swap(int[] num, int n, int m) {29         int t = num[n];30         num[n] = num[m];31         num[m] = t;32     }33 34     public static void ser(int[] num) {35         for (int i = 0; i <= 6; i++) {36             for (int j = i + 1; j <= 7; j++) {37                 a = 0;38                 b = 0;39                 c = 0;40                 ans = 0;41                 for (int k = 0; k <= i; k++) {42                     a = a * 10 + num[k];43                 }44                 for (int k = i + 1; k <= j; k++) {45                     b = b * 10 + num[k];46                 }47                 for (int k = j + 1; k <= 8; k++) {48                     c = c * 10 + num[k];49                 }50                 if (b % c == 0) {51                     ans = a + b / c;52                     if (ans < 1000000)53                         vis[ans]++;54                 }55             }56         }57     }58 59 }

 

转载于:https://www.cnblogs.com/16crow/p/6662424.html

你可能感兴趣的文章
java 读取本地的json文件
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
JDBC二查询(web基础学习笔记八)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>