计划:从15年校内选拔C-A逐渐开始刷
15年-C1
二项式的系数规律,我国数学家很早就发现了。
如【图1.png】,我国南宋数学家杨辉1261年所著的《详解九章算法》一书里就出现了。
其排列规律:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
如下的程序,用来建立N行的杨辉三角形。请填写划线部分缺少的代码。
注意:只填写划线部分的代码,不要填写任何多余的内容。
#define N 8
int main()
{int a[N][N];int i,j;for(i=0; i<N; i++){a[i][0] = 1;a[i][i] = 1;}for(i=1; i<N; i++){for(j=1; j<i; j++) ___________________________;}填空答案:a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0; i<N; i++){for(j=0; j<=i; j++) printf("%-5d", a[i][j]);printf("\n");}return 0;
}
15年-C2
1/1 + 1/2 + 1/3 + 1/4 + … 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
用程序跑一下便知。。。
C3
有如下的加法算式。其中每个汉字代表一个数字。
(如果存在对齐问题,可参见【图1.png】)
年大年过大年能过大年怎能过大年我怎能过大年
+ 让我怎能过大年
------------------能能能能能能能
请填写“让我怎能过大年” 所代表的整数。
所有数字连在一起,中间不要空格。例如:“3125697”。当然,这个不是正确的答案。
注意:只填写一个整数,不要填写任何多余的内容。
暴力? 一开始想着套7层循环 但实在是感觉复杂度太高了。。。
#include<stdio.h>
int main()
{int sum;int i;int temp;int a,b,c,d,e,f,g;//代表每一位上的数字 for(i=9992299;i>=1000000;i--){a = i%10;//个位b = i/10%10;//十位 c = i/100%10;//百位 d = i/1000%10; //千位e = i/10000%10;//万位f = i/100000%10;//十万位g = i/1000000%10;//百万位 //printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",a,b,c,d,e,f,g);//break; temp=d*1000000+d*100000+d*10000+d*1000+d*100+d*10+d*1; //printf("%d\n",temp);//break;a=0+a*1;b=a+b*10;c=b+c*100;d=c+d*1000;e=d+e*10000; f=e+f*100000;g=f+g*1000000; //也可以直接g=i; //printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",a,b,c,d,e,f,g);//break; sum=a+b+c+d+e+f+g;if(sum==temp){printf("%d\n",i);break;} }return 0;
}
15年-C4
1193是个素数,对它循环移位后发现:
1931,9311,3119也都是素数,这样特征的数叫:循环素数。
你能找出具有这样特征的5位数的循环素数吗?
当然,这样的数字可能有很多,请写出其中最大的一个。
注意:答案是个5位数,不要填写任何多余的内容。
我的思路:99999 ~ 11111的n的降序循环 里面套一层五次循环移位的循环 顺便判断一个函数即判断是否是素数( 模2 ~ 根号n的循环 如果都模不等于0则返回它 )然后程序结束
注意有一个难点是 循环移位
int fun(int n)
{int a = n%10;//取出最后一位 比如12345得出a=5 int b = n/10;//取出前面4位 b=1234return a*10000+b; //经典的循环返回, 5*10000+1234=51234
}
15年-C5
把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。
对新得到的整数仍然可以继续这一运算过程。
比如,给定整数为4,则一系列的运算结果为:
16,37,58,89,…
本题的要求是,已知一个整数x,求第n步的运算结果。
数据格式要求:
输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于100000。
输出,一个整数,表示所求结果。
例如,
输入:
4 3
则程序应该输出:
58
再例如,
输入:
1314 10
则程序应该输出:
20
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
一开始被这个资源约定的限制吓到了,但实则就是一个很基础的题目
#include<stdio.h>
//传入一个数计算各位上数字的平方然后求他们位之和
int fun(int n)
{int res