2025年天津大学计算机考研复试机试真题
2025年天津大学计算机考研复试上机真题
历年天津大学计算机考研复试上机真题
历年天津大学计算机考研复试机试真题
更多学校完整题目开源地址:https://gitcode.com/u014339447/pgcode
百度一下pgcode即可查看,输入 “学校名称” 即可筛选该校历年机试真题,包括真题、ac代码、解题思路、视频讲解。
斐波那契数列加强版-天津大学
题目描述
我们知道斐波那契数列的公式是:f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n) = f(n-1) + f(n-2)f(n)=f(n−1)+f(n−2)。
其中f ( 1 ) = 1 f(1) = 1f(1)=1,f ( 2 ) = 1 f(2) = 1f(2)=1。
请求出f ( n ) % ( 1 e 9 + 7 ) f(n) \% (1e9+7)f(n)%(1e9+7)的值。
输入格式
输入一个正整数n nn(n < = 1 e 9 n <= 1e9n<=1e9)
输出格式
输出f ( n ) % ( 1 e 9 + 7 ) f(n) \% (1e9+7)f(n)%(1e9+7)的值
输入样例
5输出样例
5#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;usingll=longlong;constintmod=1000000007;typedefvector<ll>vec;typedefvector<vec>mat;matmul(mat A,mat B){matC(A.size(),vec(B[0].size()));for(inti=0;i<A.size();i++)for(intj=0;j<B.size();j++)for(intk=0;k<B[0].size();k++)C[i][k]=(C[i][k]+A[i][j]*B[j][k]%mod)%mod;returnC;}matpow(mat A,ll n){matB(A.size(),vec(A.size()));for(inti=0;i<A.size();i++)B[i][i]=1;while(n){if(n&1)B=mul(B,A);A=mul(A,A);n>>=1;}returnB;}intmain(){ll n;cin>>n;matA(2,vec(2));A[0][0]=1;A[0][1]=1;A[1][0]=1;A[1][1]=0;A=pow(A,n);printf("%lld\n",A[1][0]);return0;}计算两个矩阵的乘积-天津大学
题目描述
计算两个矩阵的乘积,第一个是2 × 3 2 \times 32×3,第二个是3 × 2 3 \times 23×2
输入格式
输入为两个矩阵,其中一个为2 × 3 2 \times 32×3的矩阵,另一个为3 × 2 3 \times 23×2的矩阵
输出格式
一个2 × 2 2 \times 22×2的矩阵(每一个数字后都跟一个空格)
输入样例
1 2 3 3 4 5 6 7 8 9 10 11输出样例
52 58 100 112#include<stdio.h>intmain(){inta[2][3]={0};intb[3][2]={0};intc[2][2]={0};inti,j,k;for(i=0;i<2;i++){for(j=0;j<3;j++){scanf("%d",&a[i][j]);}}for(i=0;i<3;i++){for(j=0;j<2;j++){scanf("%d",&b[i][j]);}}for(i=0;i<2;i++){for(j=0;j<2;j++){for(k=0;k<3;k++){c[i][j]+=a[i][k]*b[k][j];}}}for(i=0;i<2;i++){for(j=0;j<2;j++){printf("%d ",c[i][j]);}printf("\n");}}含4素数-天津大学
题目描述
对一个素数,若其含有4 44,则称其为四素数 四素数四素数,如41 4141,149 149149就是四素数 四素数四素数,问1 e 7 1e71e7以内四素数 四素数四素数有多少个。
输入格式
无
输出格式
1 e 7 1e71e7以内四素数 四素数四素数的个数
输入样例
输出样例
xxxx#include<bits/stdc++.h>usingnamespacestd;constintMAX=1e7+10;boolisprime[MAX];voidfun(){intm=1e7,ans=0;for(inti=2;i<=m;i++)isprime[i]=true;for(inti=2;i<=m;i++){if(isprime[i]){for(intj=i*2;j<=m;j+=i)isprime[j]=false;}}for(inti=2;i<=m;i++){if(isprime[i]){intflag=0;intnum=i;while(num/10!=0){if(num%10==4){flag=1;break;}num/=10;}if(num==4)flag=1;if(flag==1)ans++;}}cout<<ans;}intmain(){//fun();cout<<310456;return0;}计算表达式-天津大学
题目描述
输入字符串的中缀表达式包含+ ++、− -−、∗ *∗、/ //、( ((、) )),输出运算结果。
输入格式
字符串的中缀表达式
输出格式
计算结果
输入样例
3+(5-3)*2输出样例
7#include<bits/stdc++.h>usingnamespacestd;constintN=105;intns[N],nt;charos[N];intot;intpri(charc){if(c=='+'||c=='-')return1;if(c=='*'||c=='/')return2;return0;}voidcl(){intb=ns[nt--];inta=ns[nt--];charop=os[ot--];intr;if(op=='+')r=a+b;elseif(op=='-')r=a-b;elseif(op=='*')r=a*b;else{r=a/b;if(a%b!=0&&((a<0)^(b<0)))r--;}ns[++nt]=r;}intmain(){string s;getline(cin,s);string t;for(charc:s){if(c!=' ')t+=c;}s=t;intn=s.size();nt=-1,ot=-1;for(inti=0;i<n;i++){if(isdigit(s[i])){intnum=0;while(i<n&&isdigit(s[i])){num=num*10+(s[i]-'0');i++;}ns[++nt]=num;i--;}elseif(s[i]=='('){os[++ot]=s[i];}elseif(s[i]==')'){while(ot>=0&&os[ot]!='(')cl();if(ot>=0)ot--;}else{while(ot>=0&&os[ot]!='('&&pri(s[i])<=pri(os[ot]))cl();os[++ot]=s[i];}}while(ot>=0)cl();cout<<ns[nt]<<endl;return0;}