问题描述

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

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

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

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

输入格式

从标准输入读入一个正整数N (N<1000*1000)

输出格式

程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。

注意:不要求输出每个表示,只统计有多少表示法!

样例输入1

100

样例输出1

11

样例输入2

105

样例输出2

6

import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack; public class Daifenshu { public static int count = 0;
public static int N, len; public static void swap(int[] arrayA, int i, int j) {
int temp = arrayA[i];
arrayA[i] = arrayA[j];
arrayA[j] = temp;
} public static void dfs(int[] arrayA, int step) {
if(step == arrayA.length) {
check(arrayA);
return;
} else {
for(int i = step;i < arrayA.length;i++) {
swap(arrayA, i, step);
dfs(arrayA, step + 1);
swap(arrayA, i, step);
}
}
} public static void check(int[] A) {
for(int j = 1;j <= len;j++) {
int a = A[0];
for(int i = 1;i < j;i++) {
a = a * 10;
a = a + A[i];
}
if(a >= N)
break;
for(int k = (9 + j) / 2;k < 9;k++) {
int b = A[j];
for(int i = j + 1;i < k;i++) {
b = b * 10;
b = b + A[i];
}
int c = A[k];
for(int i = k + 1;i < 9;i++) {
c = c * 10;
c = c + A[i];
}
if(a * c + b == N * c)
count++;
}
}
} public static void main(String[] args) { Scanner in = new Scanner(System.in);
N = in.nextInt();
int[] A = {1,2,3,4,5,6,7,8,9};
String number = N + "";
len = number.length();
dfs(A, 0);
System.out.println(count);
}
}

最新文章

  1. c#开源消息队列中间件EQueue 教程
  2. Eos开发——ajax请求
  3. UVA 12169 Disgruntled Judge 枚举+扩展欧几里得
  4. Blue tooth
  5. DSP using MATLAB 示例Example3.8
  6. Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024)的解决
  7. MVC 為頁面的list資料重新命名
  8. Hive Experiment 2(表动态分区和IDE)
  9. CodeForces 534C Polycarpus&#39; Dice (数学)
  10. 使用redis做pv、uv、click统计
  11. 远程之SSH
  12. 使用__doPostBack函数来达到使用客户端的控件来调用服务器端的函数的--小结
  13. C语言之三大查找算法
  14. Objective-C相关Category的收集
  15. 实时监听文本框输入 oninput、onchange与onpropertychange事件的用法和区别
  16. 面向对象编程笔记--static
  17. C# post提交
  18. org.hibernate.exception.GenericJDBCException: Could not open connection
  19. 关于Mybatis的一些随笔
  20. IDEA的 mybatis插件报错 - IDE Fatal Errors

热门文章

  1. neo4j企业版集群搭建
  2. linux --文件目录的学习
  3. 感觉shopex现在的升级方式太慢了
  4. 「雕爷学编程」Arduino动手做(7)——旋转电位器模块
  5. 总结hashMap和hashtable
  6. PART(Persistent Adaptive Radix Tree)的Java实现源码剖析
  7. J2EE项目分类管理中,提交表单数据是二进制形式时,对数据的修改失败。category赋值失败。
  8. 【Mac】屏蔽系统升级更新
  9. OpenStack之Neutron模块
  10. golang如何优雅的编写事务代码