
bupt 计算机上机题
buptzy
这个作者很懒,什么都没留下…
展开
-
字符逆置2011哈工大机试题1
#include<iostream>using namespace std;int main (){ char str[209]; int i; int T; scanf("%d",&T); while(T--){ scanf("%s",str); for(i=strlen(str)-1;i>=0;i--){ printf("%c",str[i]); } printf(...原创 2018-03-21 20:21:15 · 134 阅读 · 0 评论 -
中位数
#include<iostream>using namespace std;int main(){ int n,i,m; int x; float a[100]; cin>>m; while(m--){ cin >>n; for(i=0;i<n;i++){ cin>>x; a[i]=x; } if(0==n%2){ cout<<...原创 2018-03-20 18:44:14 · 246 阅读 · 0 评论 -
众数2014北邮机试题
#include<iostream>#include<algorithm>using namespace std;#define N 100000int main(){ int a[2*N]={0}; int i,x,n,max; cin>>n; for(i=0;i<n;i++){ cin>>x; a[x+N]++; } max=a[0];...原创 2018-03-20 18:43:25 · 295 阅读 · 0 评论 -
超素数2014华科机试题
超素数就是这样的数,比如2333,2是素数,23是素数,233是素数,2333是素数,找出所有的四位超素数。每行输出六个,数之间空格隔开。#include<iostream>using namespace std;int isprime(int a){ int i; for(i=2;i<=sqrt(a);i++){ if(0==a%i){ return 0; } } re...原创 2018-03-20 18:42:18 · 167 阅读 · 0 评论 -
密码
2.加密问题(16分) 问题描述信息社会,密码与我们生活息息相关。为了安全起见,可通过简单加密机制把明文加密成密文。这里的加密机制是利用手机上的字母与数字键的对应关系:1--1,abc--2,def--3,ghi--4,jkl--5,mno--6,pqrs--7,tuv--8,wxyz--9,0--0。加密机制为:1)密码中出现的小写字母都变成对应的数字;2)密码中出现的大写字母都变成小写之后往后...原创 2018-03-24 16:26:41 · 211 阅读 · 0 评论 -
换位词
1.变位词问题(18分) 问题描述所谓变位词,是指组成各个单词的字母完全相同,只是字母排列的顺序不同。例如:silent和listen就是一对变位词。给出两个字符串,要求判断其是否互为变位词,若是,返回“Yes”,否则返回“No”。Input输入正整数N,表示N例测试。接着输入N组数据,每组数据一行,包含两个字符串。Output对每组输入数据,输出一行,“Yes”表示是变位词,“No”表示不是变位...原创 2018-03-24 15:54:12 · 535 阅读 · 0 评论 -
二叉排序树
#include<stdio.h>//#include<string.h>struct node{ node *lchild; node *rchild; char c;} Tree[110];int loc;node *creat(){ Tree[loc].lchild=Tree[loc].rchild=NULL; return &Tree[loc++];}voi...原创 2018-03-12 19:25:15 · 153 阅读 · 0 评论 -
最短路径
#include<stdio.h>int ans[101][101];int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF){ if(0==n&&0==m)break; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ ans[i][j]...原创 2018-03-12 19:24:05 · 140 阅读 · 0 评论 -
最小生成树
#include<stdio.h>#include<algorithm>using namespace std;#define N 101int tree[N];//tree[i]表示结点i的双亲结点int findroot(int x){//寻找根结点 if(-1==tree[x]){return x;}//-1表示根结点 else { /*int tmp=findro...原创 2018-03-12 19:23:33 · 134 阅读 · 0 评论 -
两分数之和
求a1的-a次方和b1的-b次方之和,需化简#include<iostream>using namespace std;int gcd(int a,int b){ if(0==b){return a;} else {return gcd(b,a%b) ;}}int main(){ int a ,b,a1,b1;//a1,b1为底数,a b为指数 int t1=1,t2=1;//a的分母...原创 2018-03-20 19:04:03 · 269 阅读 · 0 评论 -
奇数偶数之和
输入T组整数每组有N个整数求这组数的奇数之和,偶数之和#include<iostream>using namespace std;int main(){ int T; int N; int i,j; int a,b; int x; cin>>T; while(T--){ a=b=0; cin>>N; for(i=0;i<N;i++){ cin&g...原创 2018-03-20 19:07:29 · 690 阅读 · 0 评论 -
内存分配2014北邮机试题B
#include<iostream>#include<algorithm>using namespace std;int main(){ int n, N,M; int temp,flag; int i,j; int buf1[101]={0}, buf2[101]={0}; cin>>n; while(n--){ cin>>N; for( i=...原创 2018-03-20 19:12:15 · 296 阅读 · 0 评论 -
逆序数
#include<iostream>#define N 100000000using namespace std;int a[N];//当N超过百万级别时候会发生栈溢出,把数组定义此处可以解决栈溢出问题//也可以用malloc来解决int main(){ int T; int n; int i,j,x; int count; cin>>T; while(T--){ cin...原创 2018-03-21 19:58:30 · 451 阅读 · 0 评论 -
反码
#include<iostream>#include<cstring>using namespace std;int main(){ char str[100]; int i; while(cin>>str&&strcmp(str,"!")!=0){ for(i=0;i<strlen(str);i++){ if(str[i]<...原创 2018-03-21 19:34:17 · 559 阅读 · 0 评论 -
连通图
原创 2018-03-21 12:55:50 · 194 阅读 · 0 评论 -
栈的使用
#include<iostream>#include<cstring>using namespace std;int main(){ int a[100]; int n; char c; cin>>n; int top=-1; while(n--){ cin>>c; if(c=='P'){ int x; cin>>x; a[++to...原创 2018-03-21 12:36:23 · 150 阅读 · 0 评论 -
搬水果-最小生成树-2011吉大机试
#include<iostream>#include<queue>#include<functional>using namespace std;priority_queue<int ,vector<int>,greater<int >>Q;int main(){ int n,i,w; cin>>n; if(n!=原创 2018-03-21 12:06:10 · 187 阅读 · 0 评论 -
数字之和-2011吉大机试
#include<iostream>using namespace std;int main(){ int n,num,m; int a,b; cin>>num; while(num--){ cin>>n; if(0==n) { break; } else {m=n*n; a=b=0; while(n!=0){ a+=n%10; n/=1...原创 2018-03-21 11:41:41 · 160 阅读 · 0 评论 -
时钟夹角
#include<iostream>using namespace std;int abs(int x){ return x>0?x:-x;}int main(){ float h,m,h1,m1; float c; int T; cin>>T; while(T--){ scanf("%f:%f",&h,&m); h1=h/12*360+m/60*...原创 2018-03-20 20:18:18 · 454 阅读 · 0 评论 -
最长等差连续子数列
#include <iostream>using namespace std;int main(){ int T,N,x; int a[101]; int b[100]; int i,j,count,temp; cin>>T; while(T--){ cin>>N; for(i=0;i<N;i++){ cin>>x; a[i]=x;...原创 2018-03-20 19:14:02 · 563 阅读 · 0 评论 -
两数求和(枚举)
#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;int main (){ int a,b,c; for(a=0;a<=9;a++){ for(b=0;b<=9;b++){ for(c=0;c<=9;c++){ if(1000==a*10...原创 2018-03-12 19:11:52 · 323 阅读 · 0 评论 -
m行n列的各行各列之和以及对角线之和
#include<stdio.h>#include<stdlib.h>#include<algorithm>#define N 10using namespace std;int main(){ int m,n; int x; int a[N][N],b[11]={0}; int i,j,k; while(scanf("%d",&m)!=EOF){ ...原创 2018-03-12 19:04:17 · 901 阅读 · 0 评论 -
100以内的Smith数
#include<math.h>#include<functional>#include<iostream>using namespace std;//素数判断int isprime(int a){ int i; for(i=2;i<=sqrt(a);i++){ if(0==a%i){return 0;} } return 1;//在此处return ...原创 2018-03-12 19:00:31 · 2124 阅读 · 0 评论 -
bupt 2016-2
2.寻找变化前01序列问题描述给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。例如给你11111010你需要输出1111110Input输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处理过的01序列(长度小于100)。Output对...原创 2018-02-21 17:16:30 · 198 阅读 · 0 评论 -
bupt 2016-1
1.三元组问题描述给你一个长度为m的数组(数组元素从0到m-1),如果数组里有a[i]+a[j]==a[k](i,j,k大于等于0并且小于m),便称之为三元组。现在给你一个数组,让你求三元组的个数。例如m为2,里面的元素为(0,0)那么三元组为(a[0],a[0],a[0])(a[0],a[0],a[1])(a[0],a[1],a[0])(a[0],a[1],a[1])(a[1],a[0],a[0...原创 2018-02-21 16:14:40 · 235 阅读 · 0 评论 -
二叉树的前中后序相互求法
一、已知前序、中序遍历,求后序遍历例:前序遍历: GDAFEMHZ中序遍历: ADEFGHMZ画树求法:第一步,根据前序遍历的特点,我们知道根结点为G第二步,观察中序遍历ADEFGHMZ。其中root节点G左侧的ADEF必然是root的左子树,G右侧的HMZ必然是root的右子树。 第三步,观察左子树ADEF,左子树的中的根节点必然是大树的root的leftchil...转载 2018-03-15 09:13:04 · 618 阅读 · 0 评论 -
任意进制转换
输入 a str b a为现在的进制,str为a进制的数,求str在b进制的表示eg: 输入:15 Aab3 7 输出:210306#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int a ,b; char str[40],ans[40]; int temp,c,x; in...原创 2018-02-27 19:34:19 · 270 阅读 · 0 评论 -
素数个数
给一个数n,求1到n的素数,且该素数个位是1,若没有满足条件则输出1#include<stdio.h>#include<math.h>int isprime(int a ){ int i; for(i=2;i<=sqrt(a);i++) { if(a%i==0) return 0; } return 1;}int main(){ int num; int n; i...原创 2018-02-27 19:29:37 · 152 阅读 · 0 评论 -
特殊乘法
求两个数各个位数之积的和是多少eg:123,45val=1*4+1*5+2*4+2*5+3*4+3*5=54#include<stdio.h>int main(){ int a,b; int buf1[11],buf2[11];//用数组存储两数的各个位数上的数字 int size1=0,size2=0; int val=0; int i,j; while(scanf("%d%d",&...原创 2018-02-27 19:27:19 · 158 阅读 · 0 评论 -
最小公倍数
#include<stdio.h>#include<stdlib.h>int gcd (int a ,int b){ if(0==b){ return a; }else{ return gcd(b,a%b); }}int main(){ int a ,b; while(scanf("%d%d",&a,&b)!=EOF){ printf("%d\n",a...原创 2018-02-27 19:23:42 · 200 阅读 · 0 评论 -
最大公约数
#include<stdio.h>#include<stdlib.h>int gcd(int a,int b){ if (0==b){ return a; }else{ return gcd(b,a%b); }}int main(){ int a ,b; while(scanf("%d%d",&a,&b)!=EOF){ printf("%d\n",gc...原创 2018-02-27 19:21:52 · 143 阅读 · 0 评论 -
bupt -2016-3
3.寻找i*j=m的个数(思想借鉴博主葡萄家)问题描述3*3的矩阵内容。1 2 32 4 63 6 9即a[i][j](1<=i<=n,1<=j<=n)=i*j。问一个这样n*n的矩阵里面,里面m出现的次数。例如n为3,m为6.那么出现的次数就是2Input输入正整数N,表示N例测试(N<=20)。接着输入n(n<=10^5),m(<=10^9)。Outp...原创 2018-02-21 20:24:27 · 282 阅读 · 0 评论 -
bupt -2016-4
4.字符串处理问题描述有以下三种操作。(1)COPY l r(0<=l<=r<n),n代表s串的长度。这个表示将s串从l到r的序列复制到剪贴板t里面,覆盖t字符串。例如s为abcde t为pqr执行COPY 1 2变为s为abcde t为bc(2)CUT l r(0<=l<=r<n),n代表s串的长度。这个表示将s串从l到r的序列剪切到剪贴板t里面...原创 2018-02-21 22:11:30 · 167 阅读 · 0 评论 -
bupt -2015-1
1.描述:求函数f(x) = a*x^3 + b*x^2 + c*x + d在x = x0处的一阶导数。输入:a b c d x0。输出:f'(x0)。样例输入:1 1 1 1 1样例输出:6对于机试不要把问题太复杂化,必须先理解题意。此题是求已知函数的导数,所以直接可以求,有些投机取巧。c++版:#include<iostream>using namespace std;int ma...原创 2018-02-22 09:54:13 · 163 阅读 · 0 评论 -
数的平方具有对称性
打印所有不超过n(n<256)满足其平方具有对称性的数#include<stdlib.h>#include<stdio.h>int main(){ int n,m,count,flag;//count用于记录数字位数,便于打印和判断对称 int a[100]; scanf("%d",&n); for(int i=0;i<n;i++){ m=i*i; ...原创 2018-03-12 09:56:13 · 1035 阅读 · 0 评论 -
二分幂
#include<stdio.h>#include<stdlib.h>#define N 1000;int main(){ long int a,b,ans; while(scanf("%d%d",&a,&b)!=EOF){ if(0==a&&0==b){break;} ans=1; while(b!=0){ if(1=...原创 2018-03-10 08:39:15 · 151 阅读 · 0 评论 -
百鸡问题
#include<stdio.h>#include<stdlib.h>int main(){ int x,y,z,n; while(scanf("%d",&n)!=EOF){ for( x=0;x<=100;x++){ for( y=0;y<=100-x;y++){ z=100-x-y; if(x*5*3+y*3*3+z<=n*3...原创 2018-03-10 09:12:38 · 300 阅读 · 0 评论 -
bupt-2014-1
思想借鉴王道的hash[],由于题目中并未提到整数是否正数,所以考虑小于0的情况,用偏移量offset将”负数转为正数”,考虑得有些复杂,直接考虑了整数次数出现的情况,而题目是给出的非降的数列可以在简化一些,从第一个所给的整数开始比较简单吧C语言:#include<stdio.h>#include<stdlib.h>#define offset 100000int main...原创 2018-02-22 17:11:12 · 235 阅读 · 0 评论 -
bupt-2015-3
第三题:图像压缩存储转载自博主葡萄家描述:以二维数组表示图像,其值只有0、1两种,寻找两幅图像中最大的相同部分输入:第一行输入一个n,接下来的2n行输入两个n * n数组,寻找一个最大的m * m子区域,使得两个数组在该子区域完全相同输出:输出上诉m样例输入: 4 1 1 1 1 1 1 1 0 ...转载 2018-02-22 17:05:01 · 303 阅读 · 0 评论 -
bupt-2015-2
第二题:LIST描述:在该LIST上实现3种操作 1、append x在该LIST末尾添加x,x是32位整数 2、pop删除该LIST末尾的数 3、find i寻找第i个数,若i为负数表示寻找倒数第i个数,例如i = -1表示寻找倒数第一个输入:第一行输入一个m,表示有m条操作,接下来每行输入一条操作输出:输出find i找到的数c++版:#incl...原创 2018-02-22 14:38:55 · 186 阅读 · 0 评论