冯诚阳 • 5天前
#include<iostream>
using namespace std;
int n,a[10005],b[10005],lx[10005],ly[10005],x,y;
int main()
{
int ans=-1;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i]>>lx[i]>>ly[i];
cin>>x>>y;
for(int i=1;i<=n;i++)
if(x>=a[i]&&x<=a[i]+lx[i]&&y>=b[i]&&y<=b[i]+ly[i])
ans=i;
cout<<ans;
return 0;
}
评论:
读入正整数x和y,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出。
该特别规则是:按两数倒过来的值进行比较决定其大小,如30倒过来为3,29倒过来为92,则29大于30
一行两个整数x和y,用一个空格隔开,1<=x<=y<=1000000000,y-x<=100
包括y-x+1行,每行一个正整数,按两数倒过来的值进行比较决定其大小,然后由小到大输出
22 39
30
31
22
32
23
33
24
34
25
35
26
36
27
37
28
38
29
39
#include<iostream> // cin\cout\endl
#include<cstdio> //scanf()\printf()
#include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset()
#include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min()
#include<algorithm>
using namespace std;
int re(int n){
int s=0;
while(n){
s=s*10+n%10;
n/=10;
}
return s;
}
int s0(int n){
int s=0;
while(n%10==0){
s++;
n/=10;
}
return s;
}
int main(){
int a[101],b[101],x,y,k=1,t,z=1;
cin>>x>>y;
for(int i=x;i<=y;i++){
a[k]=re(i);
b[k]=s0(i);
k++;
}
for(int i=1;i<y-x;i++){
for(int j=1;j<=y-x-i;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
}
for(int i=1;i<=y-x+1;i++){
z=1;
while(b[i]){
z*=10;
b[i]--;
}
cout<<re(a[i])*z<<endl;
}
return 0;
}
幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。如:
三阶幻方
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
现给出N阶奇数幻方的组成规律
把1放在第一行正中; 按以下规律排列剩下的n*n-1个数:
(1)、每一个数放在前一个数的右上一格;
(2)、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;
(3)、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;
(4)、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;
(5)、如果这个数所要放的格已经有数填入,处理方法同(4)。
现要求任意输入一个奇数n(n<100),输出n阶幻方的放法。
n
n阶幻方,n行n列,数之间以空格隔开
3
8 1 6
3 5 7
4 9 2
#include<iostream> // cin\cout\endl
#include<cstdio> //scanf()\printf()
#include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset()
#include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min()
#include<algorithm>
using namespace std;
int main(){
int x,y,a[101][101]={},n,x1,y1;
cin>>n;
x=0,y=n/2;
for(int i=1;i<=n*n;i++){
a[x][y]=i;
x1=(x-1+n)%n;
y1=(y+1)%n;
if(a[x1][y1]==0){
x=x1;
y=y1;
}
else{
x=(x+1)%n;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
#include<iostream> // cin\cout\endl
#include<cstdio> //scanf()\printf()
#include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset()
#include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min()
using namespace std;
int main(){
//修改 将n个数里面的第x个数改为y
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
a[x]=y;
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";*/
//增加 将y增加到长度为n的数组的第x的位置上去
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
for(int i=n;i>=x;i--)
a[i+1]=a[i];
a[x]=y;
for(int i=1;i<=n+1;i++)
cout<<a[i]<<" ";*/
//删除 将长度为n的数组里的第x个数删除
int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x;
for(int i=x;i<=n-1;i++)
a[i]=a[i+1];
for(int i=1;i<=n-1;i++)
cout<<a[i]<<" ";
return 0;
}
#include<iostream> // cin\cout\endl
#include<cstdio> //scanf()\printf()
#include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset()
#include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min()
using namespace std;
int main(){
//修改 将n个数里面的第x个数改为y
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
a[x]=y;
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";*/
//增加 将y增加到长度为n的数组的第x的位置上去
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
for(int i=n;i>=x;i--)
a[i+1]=a[i];
a[x]=y;
for(int i=1;i<=n+1;i++)
cout<<a[i]<<" ";*/
//删除 将长度为n的数组里的第x个数删除
int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x;
for(int i=x;i<=n-1;i++)
a[i]=a[i+1];
for(int i=1;i<=n-1;i++)
cout<<a[i]<<" ";
return 0;
}
#include<iostream> // cin\cout\endl
#include<cstdio> //scanf()\printf()
#include<cstring> // strcpy()\strcat()\strcmp()\strlen()\memset()
#include<cmath> //sqrt()\pow()\abs()\ceil()\floor()\max()\min()
using namespace std;
int main(){
//修改 将n个数里面的第x个数改为y
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
a[x]=y;
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";*/
//增加 将y增加到长度为n的数组的第x的位置上去
/*int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x>>y;
for(int i=n;i>=x;i--)
a[i+1]=a[i];
a[x]=y;
for(int i=1;i<=n+1;i++)
cout<<a[i]<<" ";*/
//删除 将长度为n的数组里的第x个数删除
int a[101],n,x,y;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>x;
for(int i=x;i<=n-1;i++)
a[i]=a[i+1];
for(int i=1;i<=n-1;i++)
cout<<a[i]<<" ";
return 0;
}