本文主要是介绍P1134 [USACO3.2] 阶乘问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目传送门:
P1134 [USACO3.2] 阶乘问题
29分代码
#include<bits/stdc++.h>using namespace std;int main()
{int n;cin>>n;unsigned long long s=1;for(int i=1;i<=n;i++){s*=i;while(s>10){if(s%10==0) s/=10;else s=s%10;}}cout<<s%10<<endl;return 0;
}
(不信你看)
70分代码
#include<bits/stdc++.h>using namespace std;int main()
{int n;cin>>n;unsigned long long s=1;for(int i=1;i<=n;i++){s*=i;while(s%10==0) s/=10;s=s%100000;}cout<<s%10<<endl;return 0;
}
就是因为 s=s%10000 保留的位数太少了
100分代码
#include<bits/stdc++.h>using namespace std;int main()
{int n;cin>>n;unsigned long long s=1;for(int i=1;i<=n;i++){s*=i;while(s%10==0) s/=10;s=s%100000000;}cout<<s%10<<endl;return 0;
}
(看懂了再抄)
这篇关于P1134 [USACO3.2] 阶乘问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!