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
  • 相关阅读:
    Jetson TX1使用usb camera采集图像 (2)
    Jetson TX1安装pyTorch
    Jetson TX1 install Opencv3
    Jetson TX1使用usb camera采集图像 (1)
    win10双系统安装卸载ubuntu
    弱监督下的目标检测算法
    javascript高级程序设计读书笔记
    好用的linux命令
    正则表达式学习
    yii执行原理
  • 原文地址:https://www.cnblogs.com/asd1234/p/3372061.html
Copyright © 2011-2022 走看看