• USACO palsquare


    给出Base b( 2<=b<=20),10进制下1~300的平方的b进制数若为回文数,则输出平方数及原数(按b进制输出),超出9的那一位用A、B...代替

    超出9部分的字符转换出现问题,要注意。

    if(s1[ll]>9)
                s1[ll] += 'A' - 10;
            else
                s1[ll] += '0';
     1 #include <cstdio>
     2 
     3 FILE *fin = fopen("palsquare.in","r");
     4 FILE *fout = fopen("palsquare.out","w");
     5 
     6 void solve(int  b, int x)
     7 {
     8     int l = 0, ll = 0;
     9     char s[20], s1[20];
    10     int temp = x;
    11     while(temp>0)
    12     {
    13         /*int ch = temp % b ;
    14         if(ch<10)
    15             s1[ll] = ch + '0';
    16         else
    17             s1[11] = ch + 'A' - 1;
    18             */
    19         s1[ll] = temp % b;
    20         if(s1[ll]>9)
    21             s1[ll] += 'A' - 10;
    22         else
    23             s1[ll] += '0';
    24         temp /= b;
    25         ll++;
    26     }
    27     s[ll]='';
    28     x *= x;
    29     while(x>0)
    30     {
    31         /*
    32         int ch = x % b ;
    33         if(ch<10)
    34             s[l] = ch + '0';
    35         else
    36             s[1] = ch + 'A' - 1;
    37         */
    38         s[l] = x % b;
    39         if(s[l]>9)
    40             s[l] += 'A' - 10;
    41         else
    42             s[l] += '0';
    43         x /= b;
    44         l++;
    45     }
    46     s[l]='';
    47     int flag = 0;
    48     for(int i=0; i<l/2; i++)
    49     {
    50         if(s[i]!=s[l-i-1])
    51         {
    52             flag = 1;
    53             break;
    54         }
    55     }
    56     if(flag==0)
    57     {
    58         for(int i=ll-1; i>=0; i--)
    59             fprintf(fout, "%c",s1[i]);
    60         fprintf(fout, " ");
    61         fprintf(fout, "%s ",s);
    62     }
    63 }
    64 
    65 int main()
    66 {
    67     int b;
    68     fscanf(fin, "%d",&b);
    69     for(int i=1; i<=300; i++)
    70     {
    71         int x = i;
    72         solve(b, i);
    73     }
    74     return 0;
    75 }
    View Code 
  • 相关阅读:
    Array对象
    属性描述对象
    Object对象
    console对象与控制台
    编程风格
    错误处理机制
    13、百钱买百鸡之数学优化
    12、c程序中编程,统计一行中数字字符的个数。
    10、输入某年某月某日,判断这一天是这一年的第几天?
    9、c语言输入一个整数怎么分别输出它的每位上的数字
  • 原文地址:https://www.cnblogs.com/byluoluo/p/3421978.html
Copyright © 2020-2023  润新知