Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
想不明白为什么错了呢,有人帮忙看一下吗?相当直观的想法阿。。#include <iostream> #include <set> #include <vector> using namespace std; int factorials[10]; set<int> s; vector<int> v; int main(){ int i=0; factorials[0]=1; for(i=1; i<=9; i++){ factorials[i] = factorials[i-1]*i; } s.insert(factorials[1]); set<int>::iterator it; for(i=2; i<=9; i++){ v.clear(); for(it=s.begin(); it!=s.end(); it++){ v.push_back(*it+factorials[i]); } s.insert(v.begin(),v.end()); s.insert(factorials[i]); } int n=0; while(true){ cin >> n; if(n<0) break; if(n>409113){ //这个是最大的。。9!+。。。+1! cout << "NO" << endl; continue; } if(s.find(n)!=s.end()) cout << "YES" << endl; else cout << "NO" << endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator