USACO 1.2.4 Palindromic Squares

本题的关键是进制转换,如何将10进制数转换为B进制(2<=B<=20),大于9的数字用大写字母表示(类似16进制)。程序关键在于进制转换函数的书写。

代码如下:


/*
ID: michael139
LANG: C
PROG: palsquare
*/
#include
#include
int tenToB(int ten,char B[150],int b);
int main () {
    FILE *fin  = fopen("palsquare.in", "r");
    FILE *fout = fopen("palsquare.out", "w");
    int b,i,j,len,ok;
    char B[150],B2[150];
    while (fscanf(fin,"%d",&b) != EOF) {
        for (i=1;i<=300;i++) {
            len = tenToB(i*i,B,b);
            ok = 1;
            for (j=0;j=0;i--) B[len-i-1] = TB[i];
    B[len] = '\0';
    return len;
}


你可能感兴趣的:(ACM/Algorithms)