当前位置: 首页 > news >正文

sdut-程序设计基础Ⅰ-23级转专业第一次机测题

7-1 猴子吃桃

分数 5

作者 杨鑫

单位 大连理工大学

猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

输出格式:

输出第十天共吃多少桃子,第一天吃了多少桃子。

输入样例:

输出样例:

10天共吃3049

第一天吃1534

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int i=1,k=1; int sum=0; int cnt=0; for(int j=2;j<=10;j++){ i=(i+1)*2; sum=sum+i; } for(int j=2;j<=9;j++){ k=(k+1)*2; cnt=cnt+k; } cout<<"10天共吃"<<sum+1<<endl; cout<<"第一天吃"<<sum-cnt; return 0; }

7-2 最大公约数和最小公倍数

分数 10

作者 唐艳琴

单位 中国人民解放军陆军工程大学

本题目要求读入2个正整数A和B,然后输出它们的最大公约数和最小公倍数。

输入格式:

输入在一行中给出2个不超过10000的正整数A和B。

输出格式:

对每一组输入,在一行中输出最大公约数和最小公倍数,用逗号分隔。

输入样例:

2 3

输出样例:

1,6

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int m,n; cin>>m>>n; int cnt,sum; for(int i=min(m,n);i>=1;i--){ if(m%i==0&&n%i==0){ cnt=i; break; } } for(int i=1;i<=m*n;i++){ if(i%m==0&&i%n==0){ sum=i; break; } } cout<<cnt<<","<<sum; }

7-3 数组中的逆序对

分数 20

作者 fang

单位 广东东软学院

数组中的逆序对

给定一个长度为n的整数数组,其中可能存在正数、负数和零。请编写一个程序,计算并输出数组中的逆序对。
提示:逆序对是指两个元素的值满足前面的元素大于后面的元素。例如,对于数组[1, -2, 3, 4, -5],逆序对有(1, -2)、(1, 3)、(1, 4)、(1, -5)、(-2, 3)、(-2, 4)、(-2, -5)、(3, 4)、(3, -5)、(4, -5),共10个逆序对。

输入格式:

第一行输入一个整数n,表示数组的长度。
第二行输入n个整数,用空格隔开,表示数组的元素。

输出格式:

按顺序输出数组中的逆序对。一组逆序对的两个数中间用空格隔开并在后面加上换行符。如果题目中没有逆序对,则输出“NULL”。

输入样例:

5

1 -2 3 4 -5

输出样例:

1 -2

1 -5

-2 -5

3 -5

4 -5

代码长度限制

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int a[110]; bool flag=0; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++){ if(a[i]>a[j]){ flag=1; cout<<a[i]<<" "<<a[j]<<endl; } } } if(flag==0) cout<<"NULL"; return 0; }

7-4 杨辉三角

分数 5

作者 杨鑫

单位 大连理工大学

这是一个编程题模板。

请在这里写题目描述。例如:本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:

输出格式:

10行的杨辉三角

输入样例:

输出样例:

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

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int a[12][12]; for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ if(i<=2||j==1||j==i) a[i][j]=1; else a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(int i=1;i<=10;i++){ for(int j=1;j<=i;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }

7-5 开关灯

分数 21

作者 于延

单位 哈尔滨师范大学

任务描述

假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。

输入格式:

输入正整数N和M,以单个空格隔开。

输出格式:

顺次输出关闭的灯的编号,其间用逗号间隔。

输入样例:

10 10

输出样例:

1,4,9

题目来源

该题目选自OpenJudge网站,在线网址:http://noi.openjudge.cn/ch0104/31/

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; int a[5050]; for(int i=1;i<=n;i++){ a[i]=-1; } for(int i=2;i<=m;i++){ for(int j=i;j<=n;j=j+i){ a[j]=-1*a[j]; } } int b[5050]; int j=1; cout<<"1"; for(int i=2;i<=n;i++){ if(a[i]==-1) cout<<","<<i; } }

7-6 回文素数

分数 30

作者 曹风云

单位 合肥师范学院

如果一个整数是素数,同时其对应的字符串是回文字符串时,便称其为回文素数。例如,131既是素数,其对应的字符串“131”又是回文字符串,所以131是回文素数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

编写函数,输入一个正整数 n作为函数参数 , 请你在一行内输出从小到大排列的小于这个数的所有回文素数,每个数字后面一个逗号。

输入格式:

输入一个正整数

输出格式:

一行内输出从小到大排列的小于这个数的所有回文素数,每个数字后面一个逗号。

输入样例:

在这里给出一组输入。例如:

131

输出样例:

在这里给出相应的输出。例如:

2,3,5,7,11,101,

实现代码:

#include<bits/stdc++.h> using namespace std; int a[100]; int fun(int x){ int i; for(i=2;i*i<=x;i++){ if(x%i==0){ return 0; break; } } return 1; } int f(int i){ int sum=-1; int j=0; if(i<10) return 1; else{ while(i){ a[j++]=i%10; i=i/10; sum=sum+1; } for(int k=0;k<=sum;k++){ if(a[k]!=a[sum-k]) { return 0; break; } } } return 1; } int main(){ int n; cin>>n; for(int i=2;i<n;i++){ fun(i); f(i); if(fun(i)==1&&f(i)==1) cout<<i<<","; } return 0; }

7-7 奇偶分家

分数 10

作者 陈越

单位 浙江大学

给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:

输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:

在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:

9

88 74 101 26 15 0 34 22 77

输出样例:

3 6

实现代码:

#include<bits/stdc++.h> using namespace std; int a[1010]; int main(){ int n; cin>>n; int sum=0; int cnt=0; for(int i=1;i<=n;i++){ cin>>a[i]; if(a[i]%2==0) sum++; else cnt++; } cout<<cnt<<" "<<sum; return 0; }

7-8 sdut-C语言实验-去掉重复的数据

分数 20

作者 马新娟

单位 山东理工大学

给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。(题目来源:teacher 刘)

输入格式:

输入包含两行:第一行包含一个正整数n(1≤n≤20000),表示第二行序列中数字的个数;第二行包含n个整数,整数之间以一个空格分开。每个整数大于等于10、小于等于5000。

输出格式:

输出去重之后的数据,数据之间用空格间隔。

输入样例1:

5

10 12 93 12 75

输出样例1:

10 12 93 75

输入样例2:

10

21 30 14 55 32 63 11 30 55 30

输出样例2:

21 30 14 55 32 63 11

实现代码:

#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int a[20010]; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(a[j]==a[i]) a[j]=0; } } cout<<a[1]; for(int i=2;i<=n;i++){ if(a[i]!=0) cout<<" "<<a[i]; } return 0; }
http://www.cnnetsun.cn/news/1343501.html

相关文章:

  • python运算符
  • 深入理解 AI Agent 中的 Skills:让 AI 拥有专业能力的秘密武器
  • 深度解析 pprof 的采样机制:它是如何在不影响性能的前提下捕获堆栈快照的?
  • 密码学加解密实训(Base64转义)
  • python股票数据分析预测系统 大模型股票行情预测系统 量化交易分析预测系统
  • Linux系统
  • 腾讯版「龙虾」Workbuddy上线当天,我用它搭了一套行业情报日报系统
  • 图表替代文字降AI率不会?看完这篇5分钟学会
  • AI Image Background Remover Pro
  • Python绘制带自动缩放的线条、多边形和规则多边形集合图
  • java面试题总结2
  • 老周虾扯:解构 AI 记忆构建长效 Agent 的底层逻辑与认知体系
  • 大数据建模中的混沌工程:测试系统弹性的方法
  • 深入解析UniAD架构:面向决策规划的端到端自动驾驶Transformer模型全景报告
  • C/C++: 栈包含哪些数据信息
  • 加解密篇 - 非对称加密算法 (RSA、DSA、ECC、DH)
  • 如何使用SQuAD Explorer:探索自然语言理解的终极指南
  • 探索稳定扩散之卓越:Awesome Stable Diffusion
  • 【亲测免费】 WunderGraph 开源项目教程
  • 开源项目 `path` 使用教程
  • 开源项目推荐:Polyfill Library
  • TrackEval:终极多目标跟踪评估工具,HOTA指标轻松掌握!
  • 如何用uni-api快速搭建个人AI服务:5分钟配置多模型负载均衡指南
  • Hyperledger Fabric交易流程详解:从提案到共识的完整生命周期
  • URLImage vs AsyncImage:为什么选择轻量级SwiftUI图片加载库?
  • 从0到1:用FontBlaster构建支持多字体的iOS应用案例
  • cross-spawn vs原生spawn:为什么跨平台开发必须选择前者?
  • 10分钟上手CodeBrowser:从编译数据库到生成首个静态代码网站的完整教程
  • 如何快速上手React Intersection Observer?5分钟入门教程与实例
  • FlexyPool集成HikariCP实战:打造高性能弹性数据库连接池