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

    #include "stdio.h"
    int main()
    {
    	int m,n,i,a[9]={1,2,6,24,120,720,5040,40320,362880}; //求出1到9的阶乘
    	scanf("%d",&m);
    	while(m--)
    	{
    		scanf("%d",&n);
    		for(i=8;i>=0;i--)
    		if(n-a[i]>=0) n-=a[i]; //计算用n依次减去a[8]到a[0],如结果为0则证明可以有阶乘的和相加得出
    		printf((n == 0)?"Yes
    ":"No
    ");
    	}
    	return 0;
    }        
    

      

  • 相关阅读:
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    第五次作业
    java第三次作业
    Java第二次作业
    Java第一次作业
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7052637.html
Copyright © 2011-2022 走看看