华师一附中OI组

标题: 20141122庆祝家长会之练习题 [打印本页]

作者: diggersun    时间: 2014-11-22 15:17
标题: 20141122庆祝家长会之练习题
1、 1..9 九个数字分成三组,每组一个三位数都是完全平方数,分别是多少呢?
2、5*5的方格里面摆满了数字,每行一个5位数,每列也是一个5位数,正反对角线也是,这12个5位数都是质数,并且各个数位上的数字和都是P。首行第一个数字是k,输入PK求这样的方阵
3、输入一个m求一个n使得m*n都是由0和1组成。
作者: hr567    时间: 2014-11-22 17:27
家长会还有礼物啊
有点难呀。
作者: /wjr/    时间: 2014-11-22 19:51
  1. #include<iostream>
  2. using namespace std;
  3. int a[25],tot;
  4. bool b[10];
  5. int main()
  6. {
  7.         for(int i=13;i<=31;i++)
  8.         {
  9.                 int sqrtn=i*i;
  10.                 int pp=sqrtn/100,qq=(sqrtn/10)%10,rr=sqrtn%10;//pp,qq,rr为第一、二、三位
  11.                 if(pp!=qq&&qq!=rr&&rr!=pp)a[++tot]=sqrtn;
  12.         }
  13.         for(int i=1;i<=tot-2;i++)
  14.         {
  15.                 b[a[i]%10]=b[a[i]/100]=b[(a[i]/10)%10]=1;
  16.                 for(int j=i+1;j<=tot-1;j++)
  17.                 {
  18.                         int p=a[j]/100,q=(a[j]/10)%10,r=a[j]%10;
  19.                         if(b[p]==0&&b[q]==0&&b[r]==0)
  20.                         {
  21.                                 b[p]=b[q]=b[r]=1;
  22.                                 for(int k=j+1;k<=tot;k++)
  23.                                 {
  24.                                         int ppp=a[k]/100,qqq=(a[k]/10)%10,rrr=a[k]%10;
  25.                                         if(b[ppp]==0&&b[qqq]==0&&b[rrr]==0) cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<endl;
  26.                                 }
  27.                                 b[p]=b[q]=b[r]=0;
  28.                         }
  29.                 }
  30.                 b[a[i]%10]=b[a[i]/100]=b[(a[i]/10)%10]=0;
  31.         }
  32.         return 0;
  33. }
复制代码

第一题




欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2