查看單個文章
舊 2007-09-30, 10:55 PM   #4 (permalink)
joebin
註冊會員
 
joebin 的頭像
榮譽勳章

勳章總數0
UID - 270712
在線等級: 級別:2 | 在線時長:16小時 | 升級還需:5小時級別:2 | 在線時長:16小時 | 升級還需:5小時
註冊日期: 2007-06-06
住址: 過去*現在*未來
文章: 42
精華: 0
現金: 58 金幣
資產: 118 金幣
預設

各位看官想知道自己答案正確還是錯誤請按

然後在自己程式碼前打上

語法:
/*
ID: newjoeb1
PROG: palsquare
LANG: 選擇語言名稱(C.C++.PASCAL.JAVA)
*/
下方有個上傳檔案,請以txt的方式上傳

以下是我的程式碼(好長.....僅供參考 = =)


語法:
/*
ID: newjoeb1
PROG: palsquare
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <math.h>
using namespace std;
int main() {
    ofstream fout ("palsquare.out");
    ifstream fin ("palsquare.in");
    int i,j,m,k,n,l=1,t; char d[301][20],A='A',O='0',a[20];
    fin >>n;
    for(i=1;i<=300;i++){
      m=i*i;k=pow(n,l);t=1;
      if(m/k>0)
        while(m/k>0){
          l++;
          k=pow(n,l);
        }
      for(j=l-1;j>=0;j--){
        k=pow(n,j);
        d[i][j]=m/k;
        m%=k;
      }
      for(j=l;j>l/2;j--)
        if(d[i][j-1]!=d[i][l-j]){
          t=0;
          break;
        }
      if(t==1){
        j=0;m=i;
        while(m>0){
          a[j]=m%n;
          m/=n;
          j++;
        }
        for(;j>0;j--){
          if(a[j-1]>9){
            A+=a[j-1]-10;
            fout <<A;
            A='A';
          }
          else{
            O+=a[j-1];
            fout <<O;
            O='0';
          }
        }
        fout <<" ";
        for(j=l-1;j>=0;j--){
          if(d[i][j]>9){
            A+=d[i][j]-10;
            fout <<A;
            A='A';
          }
          else{
            O+=d[i][j];
            fout <<O;
            O='0';
          }
        }
        fout <<endl;
      }
    }
    return 0;
}
joebin 目前離線  
送花文章: 15, 收花文章: 18 篇, 收花: 28 次
回覆時引用此帖