zoukankan      html  css  js  c++  java
  • 历届试题 带分数

      历届试题 带分数  

    时间限制:1.0s   内存限制:256.0MB
          
    问题描述

    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
     
     
    #include<iostream>
      #include<stdio.h>
      #include<string.h>
      using namespace std;
      
      int a[10],vis[10],ans;
      int const n=9;
      
      __int64 num,num1,num2,num3;
     
     __int64 solve(int i,int j)  // 从 a数组的第i位到第j位
     {
         __int64 temp=0;
         for(int k=i;k<=j;k++)
             temp=temp*10+a[k];
         return temp;
     }
     
     void count1()// 该排列 按顺序分为 num1 num2 num3三部分  结果能不能组合成num
     {
         int l=1;
         __int64 temp;
         temp=num;
         while(temp=(temp/10))
             l++;// num1 的长度
         for(int i=0;i<l;i++)
         {
             num1=solve(0,i);
             if(num1>num)
                 return ;
             for(int j=(n-i)/2;j<=n-(i+1);j++)
             {
                 num2=solve(i+1,i+j);
                 num3=solve(i+j+1,n-1);
                 //printf("%I64d    %I64d    %I64d
    ",num1,num2,num3);
                 if(num3!=0&&num2>num3&&num2%num3==0&&num==num1+num2/num3)
                     ans++;
     
             }
     
         }
     
     
     }
     
     void dfs(int start,int n)
     {
         if(start==n)
                 count1();
         for(int i=1;i<=9;i++)
         {
             if(vis[i])
                 continue;
             a[start]=i;
             vis[i]=1;
             dfs(start+1,n);
             vis[i]=0;
         }
     }
     
     
     int main()
     {
    
        while(scanf("%I64d",&num)!=EOF)     {
             memset(vis,0,sizeof(vis));
             ans=0;
             dfs(0,n);
            printf("%d
    ",ans);
         }
         return 0;
     }

    来自:http://www.cnblogs.com/assult/archive/2014/02/22.html
  • 相关阅读:
    Hadoop-03 基于Hadoop的JavaEE数据可视化简易案例(升级使用HBase存储结果集)
    Hadoop-02 基于Hadoop的JavaEE数据可视化简易案例
    Python03 变量
    Python01 VSCode开发环境和入门程序
    MyBatis01 Idea中搭建MyBatis开发环境
    Idea01 Idea2018中集成Tomcat9导致OutPut乱码
    MySQL-08 MySQL8.0新特性
    C11 C语言文件的读写
    C10 C语言数据结构
    C09 指针
  • 原文地址:https://www.cnblogs.com/Deng1185246160/p/3592510.html
Copyright © 2011-2022 走看看