234

冯诚阳  •  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行,每行一个正整数,按两数倒过来的值进行比较决定其大小,然后由小到大输出

样例

样例输入1

22 39

Copy

样例输出1

30 31 22 32 23 33 24 34 25 35 26 36 27 37 28 38 29 39


顾文博  •  5天前

#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; 
}


顾文博  •  4天前

幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。如:
三阶幻方

816
357
492


现给出N阶奇数幻方的组成规律
把1放在第一行正中; 按以下规律排列剩下的n*n-1个数:
(1)、每一个数放在前一个数的右上一格;
(2)、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;
(3)、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;
(4)、如果这个数所要放的格已经超出了顶行且超出了最右列,那么就把它放在前一个数的下一行同一列的格内;
(5)、如果这个数所要放的格已经有数填入,处理方法同(4)。

现要求任意输入一个奇数n(n<100),输出n阶幻方的放法。

输入

n

输出

n阶幻方,n行n列,数之间以空格隔开

样例

样例输入1

3

Copy

样例输出1

8 1 6 3 5 7 4 9 2


黄俊然  •  4天前

#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;
}


顾文博  •  4天前

#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;  


 


何旻慧  •  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()   
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;  
}


成书骏  •  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()   
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;  


 


李亭绪  •  2天前