【蓝桥杯竞赛】确定进制

比较简单,只要搞懂b2ten()函数的算法即可

源码

#include <stdio.h>
#include <string.h>

long b2ten(char* x, int b) {
    int ret = 0;  
    int len = strlen(x);
    for (int i = 0; i < len; i++)
    {
        if (x[i]-‘0‘ >= b)
            return -1;
        ret *= b;
        ret += x[i]-‘0‘ ;
    }
    return (long)ret;  
}

void main( ) {  
    int n;
    char p[8],q[8],r[8];
    long pAlgorism, qAlgorism, rAlgorism;
    scanf("%d", &n);
    while(n--) {
        scanf("%s%s%s", p, q, r);
        int b;
        for( b= 2; b <= 16; b++ ) {
            pAlgorism = b2ten(p, b);
            qAlgorism = b2ten(q, b);
            rAlgorism = b2ten(r, b);
            if (pAlgorism == -1 || qAlgorism == -1 || rAlgorism == -1)
                continue;
            if (pAlgorism * qAlgorism == rAlgorism)
            {
                printf("%d\n",b);
                break;
            }
        }
        //for循环执行结束
        if (b == 17)
            printf("0\n");  
    }
}

时间: 2024-11-02 06:14:17

【蓝桥杯竞赛】确定进制的相关文章

蓝桥杯之16进制转8进制

题目: 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. [注意] 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 2 39 123ABC 样例输出 71 4435274 [提示] 先将十六进制数转换成某进制

蓝桥杯 BASIC-10~12 进制转化

十进制转十六进制 [AC代码]:更简单采用直接输出的方式. #include <iostream> #include <algorithm> #include <cstdio> using namespace std; int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int n

2015第六届蓝桥杯竞赛感悟

之前对算法一直是敬畏的,觉得很难去学习,但是通过蓝桥杯竞赛也算是强迫自己认真学习了一个多月的算法,发现算法也是可以学的. 前天竞赛就结束了,一直拖到今天才来写一篇总结,其实这次竞赛收货真的蛮大的,自己以前一直不够重视内功的培养,现在能有这么一个机会来修炼内容还是挺开心的. 感觉这次考试题和前两届去比确实难度有所增加,第九题缓存没有写好,第十题压根就没来的及做...其实第十题下来想想是能做的,只是考前最短路径这种动态规划题做的不多,所以在比赛场上就有点怯了...虽然是很想得一等奖参加决赛的,不过照

【蓝桥杯竞赛】玛雅日历

思路是将输入的Haab日历转化为对0.pop 0的天数,按照对应的天数算出Tzolkin历 #include<stdio.h> #include<string.h> // 20*18+5 char Haab[19][10] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "

【蓝桥杯竞赛】例题: 487-3279

分析: str数组接受不规范的电话字符串,number数组储存标准化的电话号码,qsort(stdlib库函数)将number数组排序,通过检测排序后的number数组得知同一个号码的重复次数, compare函数用于qsort函数的实现(类似于实现接口) strandradStr函数用于是电话号码的标准化 源码: #include<stdio.h>#include<stdlib.h>#include<string.h> char str[20];char number

【蓝桥杯竞赛】细菌繁殖

#include<stdio.h> #include<math.h> int main() { int day_Month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int day_Start, month_Start; int day_End, month_End; int num, n; scanf("%d", &n); for(int i = 0; i < n; i++) {

【蓝桥杯竞赛】 日历问题

#include<stdio.h> //2001 1 1 Saturday char week[7][10] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday","Thursday","Friday"}; int year[2] ={365, 366}; int month[2][12] =

【蓝桥杯竞赛】装箱问题

========================================================================================================== 思路: 6*6 的产品每个会占用一个完整的箱 子,并且没有空余空间: 5*5 的产品每个占用一个新的箱子,并且留下 11 个可以盛放 1*1 的产品的空余空间: 4*4 的产品每个占用一个新的箱子,并且留下 5 个可以盛放 2*2 的产品 的空余空间: 3*3 的产品情况比较复杂,首先

【蓝桥杯竞赛】棋盘上的距离

思路: 将几盘看作二维坐标,始点与终点距离用xDistance yDistance组成,王 后 车 象以不同的的情况考虑. 源码: #include<stdio.h>#include<math.h>int main(){    //测试数据组数    int nGroup = 0;    scanf("%d",&nGroup);    for(int i = 0; i < nGroup; i++)    {        char begin[5]