给定一个整数Q(2<=Q<=10),一个非空字符串,以及另一个整数T(2<=T<=10), 编程要求过滤掉字符串中所有非Q进制数对应的字符组成一个新的字符串,该字符串无正负号,将该字符串表示的Q进制数转换为T进制数的字符串输出。
输入格式:
第一行输入一个整数Q, 代表Q进制(2<=Q<=10)
第二行输入以回车结束的一行非空字符串。
第三行输入一个整数T, 代表要转换成T进制
输出格式:
输出转换后的T进制数字符串。
输入样例:
10
15
2
输出样例:
1111
解题过程
(因为时间关系,,以后的post就不做太多思路的解释了,解释会集成进注释里
实在是抱歉但时间安排实在太乱,pta上的2840已经很久没开始了
#define _CRT_SECURE_NO_WARNINGS
#include <math.h>
#include <stdio.h>
#include <string.h>int main() {int s[114];char c;int q, t;int n;int m = 0;scanf("%d", &q);getchar();//吸收\nfor (;;) {c = getchar();if (c == '\n')break;if (c >= '0' && c < '0' + q) {//判断数字,转换为10进制数m = m * q + c - '0';}}scanf("%d", &t);for (int i = 0;m != 0; i++) {
//转化为小进制数后将各个位输入数组,
//因为似乎并不会转化为更大进制的数s[i] = m % t;n = i;m = m / t;}for (int i = n; i >= 0; i--) {//输出printf("%d", s[i]);}}
//by 梓梓子