zoukankan      html  css  js  c++  java
  • nyoj 91 阶乘之和(贪心)

    阶乘之和

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述

    给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;

     
    输入
    第一行有一个整数0<m<100,表示有m组测试数据;
    每组测试数据有一个正整数n<1000000;
    输出
    如果符合条件,输出Yes,否则输出No;
    样例输入
    2
    9
    10
    样例输出
    Yes
    No
    


    小误区:1、0!=1;
               2、阶乘数不一定是连续的,如9=1!+2!+3!,7=1!+3!也可以
    突破口:因为输入输出n<1000000; 我们可求出 0!或1!=1 ;2!=2; 3!=6;4!=24;  5!=120 ;  6!=720;  7!=5040;   8!=40320;  9!=362800;
               第一步:定义一个数组 int a[9]={1,2,6,24,120,720,5040,40320,362880};
     关键:  第二部:for(i=8;i>=0;i--)
                             if(n>=a[i])
                                   n-=a[i];
               第三部: if(n==0) printf("Yes ");
                         else printf("No ")
    #include<stdio.h>
    #define size 9
    int main()
    {
        int t,n,i;
        int a[size]={1,2,6,24,120,720,5040,40320,362880};
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(i=8;i>=0;i--)
                if(n>=a[i])
                    n-=a[i];
            printf(n==0?"Yes
    ":"No
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    jmeter正则表达式书写
    Jmeter中if控制器的使用
    Jmeter组件之-Test Fragment(测试片段)
    Jmeter生成测试报告
    idea+maven+testng环境搭建以及基本使用
    ArrayList,HashSet,HashMap
    JAVA提供了八大基本数据类型对应的引用数据类型
    Properties解析
    JSON解析
    excel 解析
  • 原文地址:https://www.cnblogs.com/asd1234/p/3372061.html
Copyright © 2011-2022 走看看