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>
    #include<math.h>
    int main()
    {
    	int n,m,j,i,t,sum;
        int a[12];
    	scanf("%d",&n);
    	while(n--)
    	{
    		sum=1;
    		t=1;	
    		for(i=1;i<=10;i++)
    		{
    			for(j=1;j<=i;j++)       //因为最大数是一百万,10的阶乘大于一百万 
    			{                       //所以这些数到9的阶乘就够了 
    				sum*=j;            //此循环将1到9的阶乘放入数组a 
    			}
    			a[t]=sum;
    			t++;sum=1;
    		}
    		scanf("%d",&m);	
    		for(i=10;i>=1;i--)
    		{
    			if(m>=a[i])
    			m=m-a[i];			 //求是否符合 
    		}
    	    if(m==0)
    	    printf("Yes
    ");
    	    else
    		printf("No
    "); 	
    	}
    	return 0;
    }
    

      



  • 相关阅读:
    python接口测试3-JSON格式
    python接口测试2-开发WEB接口
    接口测试1-基础
    Apifox接口测试管理工具
    python的pip安装超时问题解决
    ubuntu解决安装速度问题
    vim进入粘贴模式
    禅道数据库
    内存管理
    文件操作
  • 原文地址:https://www.cnblogs.com/tonghao/p/4375810.html
Copyright © 2011-2022 走看看