ZOJ2358解题报告
来源:互联网 发布:mac鼠标右键设置 编辑:程序博客网 时间:2024/06/06 21:06
题意:
输入一个数,如果这个数能写成几个数的阶乘形式,就输入YES,否则输出NO
题目值得注意的地方:
(1)输出的YES 和NO 不要搞错了
(2)0的阶乘为1
(3)输出格式每个后面要加换行
做题思路:
先算一下大致数的阶乘,大概到了 9!的时候就已经满足要求
所以把0到9的阶乘算出来保存在num[]数组里面
然后用输入的数与高位数的阶乘开始减,如果结果得0就输出YES,否则输出NO
附上源代码及相关注释:
#include <iostream>using namespace std;#define max 11int num[max];int main(){ num[0]=1;num[1]=1; //把0的阶乘和1的阶乘保存起来 for(int i=2;i<max;i++){ num[i]=num[i-1]*i; } int n; while(cin>>n &&n>=0){ if(!n){ //如果输入0输出NO cout<<"NO"<<endl; } else{ for(i=max;i>=0;i--){ //用输入的数与阶乘相减 if(num[i]<=n){ n-=num[i]; } if(n==0) break; } if(n==0) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0;}
0 0
- ZOJ2358解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- Objective-C 【autorelease基本使用】
- linux 下安装pyhton
- post 请求 与上传
- DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)
- 2015年夏--致1434010105班
- ZOJ2358解题报告
- Oracle学习笔记20150901脏读不可重复读以及幻读概念理解
- Android杂谈之网络实时监测
- 10.3-2 10.3-3
- html 的table
- Android “fragment” 替换 “Tabhost”技术
- C++中const的使用
- 1的个数
- 自动化测试理解