新生24场
打印方阵:
题目描述
下面这样的方阵很有规律,称为蛇形方阵。例如3*3的:
1 2 3
6 5 4
7 8 9
现在给定边长,输出相应的蛇形方阵。
1 2 3
6 5 4
7 8 9
现在给定边长,输出相应的蛇形方阵。
输入
1个整数n,表示要输出n*n的蛇形方阵,1<=n <=100。
输出
n行,每行n个整数,空格隔开。
样例输入 Copy
4
样例输出 Copy
1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13
这个题...直接暴力循环,呵呵呵呵
#include<iostream> #include<algorithm> using namespace std; const int N=110; int a[N][N]; int main(){ int n; cin>>n; int t=1; for(int i=1;i<=n;i++) { int j=i%2==0?n:1; if(j==1) for(int j=1;j<=n;j++) a[i][j]=t++; else for(int j=n;j>=1;j--) a[i][j]=t++; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
倒背如流:
题目描述
黑板上老师写了一行N个正整数,老师要考同学们的倒背如流能力,让学生从右向左读这些数字,并求出他们的和。例如写了3个整数: 123 45 60 。结果是:06+54+321=381
输入
第一行1个整数n, 1<=n <=100。
第二行n个正整数,每个正整数不超过1000000。
第二行n个正整数,每个正整数不超过1000000。
输出
一个整数。
样例输入 Copy
3
123 45 60
样例输出 Copy
381
这个题我用了个整数反转的函数,还好
#include<iostream> #include<algorithm> using namespace std; int re(int x) { int t,m=0; while(x) { t=x%10; m=m*10+t; x/=10; } return m; } int main(){ int n,t,sum=0; cin>>n; for(int i=0;i<n;i++) { cin>>t; sum=sum+re(t); } cout<<sum<<endl; return 0; }
题目描述
有两个数列A和B,那些在A中出现但不在B中出现的数就称为集合A和集合B的差:A-B。例如:A={1 ,4, 5, 2, 6} ,B={ 5,3,2,7} , 那么A-B = {1,4,6}。
现在给你2个集合A和B,求A-B有多少个数。
现在给你2个集合A和B,求A-B有多少个数。
输入
第一行2个整数na和nb,表示集合A和集合B各有多少个整数,1<=na,nb<=10000。
第二行na个不同的正整数,表示集合A里的数,每个正整数不超过10000。
第二行nb个不同的正整数,表示集合B里的数,每个正整数不超过10000。
第二行na个不同的正整数,表示集合A里的数,每个正整数不超过10000。
第二行nb个不同的正整数,表示集合B里的数,每个正整数不超过10000。
输出
一个整数,A-B里有多少数。
样例输入 Copy
5 4
5 2 4 8 7
3 7 6 2
样例输出 Copy
3
提示
A-B={5,4,8 }
#include<iostream> #include<algorithm> #include<map> using namespace std; map<int,bool> mp; int main(){ int n,m,a[10010],t,k=0; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { cin>>a[i]; mp[a[i]]=true; } for(int i=0;i<m;i++) { cin>>t; mp[t]=false; } for(int i=0;i<n;i++) { if(mp[a[i]]) k++; } cout<<k<<endl; return 0; }
可表示的数:
题目描述
有N个整数从左到右排成一行,如果某个数等于它前面的2个数的和,就称这个数是可以表示的数。问给定的数列里有多少个数是可以表示的数。
输入
第一行1个整数N,表示数列有多少个整数。1<=N<=10000。
第二行N个正整数,每个正整数不超过10000。
第二行N个正整数,每个正整数不超过10000。
输出
一个整数,有多少可表示的数。
样例输入 Copy
8
5 2 2 3 4 8 7 16
样例输出 Copy
3
提示
4=2+2;8=5+3; 7=3+4
这个题我用的枚举,就是差了点那么个意思,看了位大佬的博客,把我的那点意思补上了,巧妙!!!
#include<iostream> using namespace std; const int N=200010; int a[N]; bool f[N]; int main(){ int n,t=0; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) { if(f[a[i]]) t++; for(int j=0;j<i;j++) { f[a[i]+a[j]]=true; } } cout<<t<<endl; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具