zoukankan      html  css  js  c++  java
  • 【ACM】阶乘之和

    阶乘之和

    时间限制: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<iostream>  
    using namespace std;  
    int main()  
    {  
        int n;  
        int k[9] = {1,2,6,24,120,720,5040,40320,362880};  
        cin>>n;  
        while(n--)  
        {  
            bool flag = false;  
            int m;  
            cin>>m;  
            for(int i = 8; i >= 0; --i)  
            {  
                if(m >= k[i] && m > 0)  
                    m -= k[i];  
                if(m == 0)  
                    flag = true;  
            }  
            if(flag)  
                cout<<"Yes"<<endl;  
            else  
                cout<<"No"<<endl;  
        }  
    }                  
  • 相关阅读:
    SVG:中国地图
    网页编程工具:EditPlus
    js插件
    html: 仿制soundmanager2右上角面板
    代码:页面布局(含图片列表布局)
    写着玩: 图片 圆盘
    表格
    按钮
    插件:左侧下拉菜单
    颜色
  • 原文地址:https://www.cnblogs.com/lyc94620/p/9289390.html
Copyright © 2011-2022 走看看