• 52 回文平方数


    52 回文平方数

    作者: xxx时间限制: 1S章节: 一维数组

    问题描述 :

    回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。 给定一个进制B(2=<B<=20进制),输出所有的大于等于1小于等于300且该数的平方用B进制表示时是回文数的数(该数本身不要求是回文数)。

    输入说明 :

    共一行,一个单独的整数B(B用十进制表示,比如18)。

    输出说明 :

    每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。

    注意:输出时,这两个数都应该以B进制表示。

    在输出时,数字10到20分别以A到K代替。

    输入范例 :
    20
    输出范例 :
    1 1
    2 4
    3 9
    4 G
    11 121
    22 484
    25 515
    33 9I9
    DD 9669

    代码

    #include <stdio.h>
    int main()
    {
    	int B,n,m;
    	int ten[301];
    	char num[21];
    	char qu[20], st1[20],st2[20],st3[20];
    	int front = 0, rear = 0, top1 = -1, top2 = -1,top3=-1;
    	for (int i = 0; i < 21; i++)//进制
    	{
    		if (i < 10)
    		{
    			num[i] = '0' + i;
    		}
    		if (i >= 10)
    		{
    			num[i] = 'A' + (i - 10);
    		}
    	}
    	for (int i = 1; i <= 300; i++)//平方
    	{
    		ten[i] = i*i;
    	}
    	scanf("%d", &B);
    	for (int i = 1; i <= 300; i++)
    	{
    		n = ten[i];
    		while (n != 0)
    		{
    			top1++; top2++; rear++;
    			st1[top1] = st2[top2] = qu[rear] = num[n%B];
    			n /= B;
    		}
    		while (top1 > -1)
    		{
    			if (st1[top1--] != qu[++front])
    			{
    				break;
    			}
    		}
    		if (top1 == -1)
    		{
    			if (i >= B)
    			{
    				m = i;
    				while (m != 0)
    				{
    					top3++;
    					st3[top3] = num[m%B];
    					m /= B;
    				}
    				while (top3 > -1)
    				{
    					printf("%c", st3[top3--]);
    				}
    				printf(" ");
    				while (top2 > -1)
    				{
    					printf("%c", st2[top2--]);
    				}
    				printf("
    ");
    			}
    			else
    			{
    				printf("%c ", num[i]);
    				while (top2 > -1)
    				{
    					printf("%c", st2[top2--]);
    				}
    				printf("
    ");
    			}
    		}
    		front = 0, rear = 0, top1 = -1, top2 = -1, top3 = -1;
    	}
    	return 0;
    }
    
    Yesterday is history,tomorrow ismystery,but today is a gift!That why it is called Present!
  • 相关阅读:
    JAVA中将字符串按某一分隔符分隔为多个字符…
    ArcGis Server 中 如何在Task中实现 下拉列…
    ADF setWhereClause()
    把时间当作朋友(二)
    0606放手
    HtmlTextWriter类的学习
    过年了...
    过年了...
    HTML在线编辑器控件
    CSS中的滑动门技术
  • 原文地址:https://www.cnblogs.com/VictorierJwr/p/12775235.html
Copyright © 2020-2023  润新知