![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
进击的小菜
这个作者很懒,什么都没留下…
展开
-
NEFU OJ 2 猜想
关键点: 合数:可以分解成任意质数的乘积 求出质数表,然后处理输入 #include #include using namespace std; #define SIZE (1<<24) int sushuVec[1080000] ; bool sushuB[SIZE+1]; int totalnum; void getSushuVec() { totalnum = 0; mem原创 2016-09-06 15:08:18 · 215 阅读 · 0 评论 -
NEFU OJ5 An interesting problem
题目: 有n位数d1d2d3...dn,如果将最后一位数dn移到首位,即dnd1d2d3...d(n-1),且 dnd1d2d3...d(n-1) = dn*d1d2d3...dn,则称这个数满足条件。 输入dn和k,求出尾数为dn的满足条件的第k个数。 目前只想到大数来做,但超时。暂时没有原创 2016-09-07 16:50:13 · 323 阅读 · 0 评论 -
NEFU OJ6 通宵教室
首先看看灯的状态分析: 比如第六盏灯,分别有1,2,3,6个人进来,是关的 第九盏灯,分别有1,3,9个人进来,是开的 第12盏灯,分别有1,2,3,4,6,12人进来,是关的 第16盏灯,分别有1,2,4,8,16人进来,是开的 。。。 可以看到,灯序号有奇数个因数是开的 什么是有奇数个因数的? 分析一下:比如12,因数都原创 2016-09-07 17:48:24 · 273 阅读 · 0 评论 -
NEFU OJ7计算整数个数
#include #include using namespace std; int a[100]; int b[100]; int main() { int n,len,tempa; cin>>n; while(n>0) { memset(b,0,sizeof(b)); cin>>len; for(int i =0;i<len;++i) { cin>>a[i];原创 2016-09-08 09:37:59 · 302 阅读 · 0 评论 -
NEFU OJ8 二倍的问题
排序后寻找符合条件的 通过代码如下: #include #include #include #include using namespace std; int laber[16]; int main() { int n,len,tempa; int result; cin>>n; while(n>0) { len= 0; result =0; w原创 2016-09-08 14:34:12 · 277 阅读 · 0 评论 -
NEFU OJ9 喜羊羊
其实就是等差数列求和,关键是注意项数怎么得到 #include #include using namespace std; int main() { int n,m,k; while(scanf("%d%d%d",&n,&m,&k) != EOF) { //项数 int num = (m-n)/k+1; //等差数列求和 int sum = n*num+((num*原创 2016-09-08 15:46:09 · 208 阅读 · 0 评论 -
NEFU OJ26 计算阶乘位数
#include #include #include using namespace std; int digit(int n) { double d = 0; for(int i =1;i<=n;++i) { d += log10((double)i); } return (int)(d+1); } int main() { int m原创 2016-09-21 13:39:13 · 312 阅读 · 0 评论 -
NEFU OJ 27 数列异形
直接求1000000000个是超时的。 主要是寻找规律,如果觉得麻烦,用代码来输出,规律是: 8,1,1,10,0,6,8,4,5,1 代码如下 #include int a[10]={8,1,1,10,0,6,8,4,5,1}; int main() { unsigned long int n; while( scanf("%d",&n) != EOF ) {原创 2016-09-21 15:48:27 · 240 阅读 · 0 评论 -
NEFU OJ29 苍之涛-求和
就是1到n求和,但为什么会写写呢...因为数据类型不对也AC不了啊 64位正整数用什么?unsigned long long #include int main() { unsigned long long n,sum; while( scanf("%llu",&n) != EOF ) { sum = (1+n)*n/2; printf("%llu\n",sum);原创 2016-09-21 16:53:14 · 215 阅读 · 0 评论