XDOJ_1076_进制

http://acm.xidian.edu.cn/problem.php?id=1076

水,好像写麻烦了。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;

LL three[40] = {0},sum[40] = {0};

int change(char x)
{
    switch(x)
    {
        case ‘1‘:   return 1;
        case ‘3‘:   return 2;
        case ‘5‘:   return 3;
    }
}

int main()
{
    three[0] = 1;
    for(int i = 1;i <= 36;i++)  three[i] = three[i-1]*3;
    for(int i = 1;i <= 36;i++)
    sum[i] = sum[i-1]+three[i];
    char s[40];
    while(~scanf("%s",s))
    {
        int len = strlen(s);
        LL ans = sum[len-1];
        for(int i = 0;i < len;i++)
        {
            ans += (change(s[i])-1)*three[len-i-1];
        }
        printf("%lld\n",ans+1);
    }
    return 0;
}
时间: 2024-10-19 02:23:17

XDOJ_1076_进制的相关文章

计算机中的进制

在学习编程的过程中,经常见到二进制,十进制,十六进制,到底进制表示什么意思呢?进制,字面意思,前进的制度,在数字方面,就是数字前进的制度,数字怎么向前进,那就是进位,我们在做加法运算的时候都会用到进位,8+3,我们会写个1,然后向前进一位,数数的时候更是如些,1,2,3......10, 我们不会再向下数11,12 ..... ,而是在心中放一个1, 然后再1,2,3,4,......10, 到10之后, 我们也不会向下数,而是在心中再记一个1,那么心中的数字就是2了,继续向下数,1,2,3,数

数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.hashCode: "+arr4.hashCode()); //将hashCode值转化为16进制的两种方式 System.out.println(Integer.toString(366712642,16));//将整数转化为16进制的数为:15db9742 System.out.println(I

进制、类型转换、提升

进制 java支持四种进制表示 进制 示例 前缀 备注 十进制 int x = 10;     二进制 int x = 0b10; 0b或0B 计算机储存 八进制 int x = 010; 0 兼容以前程序 十六进制 int x = 0xceaf 0x或0X 0~9,a~f 细节: 一个十六进制位可以表示四个二进制位 当数值位数较多时,可以使用下划线对数字进行隔开,例:1_230_456 字面常量 整数:字面常量为int型,如果要表示long类型的字面常量,使用L或l做后缀,建议使用L,因为字母

1813. M进制数问题

1813. M进制数问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 试用 C++的类来表示一般进制数. 给定 2 个n位m进制整数A和B,计算m进制数整数P = A / B (向下取整)与 Q = A % B的值. Input 输入包含多个测试点.第一行为一个整数T,表示测试点数. 对于每个测试点第 1 行是进制 m .第 2 行和第 3 行分别给出 m 进制整数 A 和 B. 所有 m 进制数的10进制表示均

任意进制转换算法

任意进制转换算法 N年没有写博客,发个进制转换的玩下,支持负数:功能属于简化版的 Convert.ToInt32 ,特点是: 1.任意位,如:0,1(二进制),0...7(八进制),0...9,A...F(16进制),0...N(N进制),或者是:[email protected]#$%^&*(8进制,字符符号),也可以是中文. 2.8 byte 最大长度. 3.C#源码. 最近写markdown格式习惯啦,cnblogs啥时候全改掉算了,别用这个htmleditor算了. 先说明下进制转换的基

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

java 的任意进制间转换

直接上代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("十进制转换到其它进制:"); int x = 123 ; String str1 = Integer.toHexString(x) ; ///10进制转换成16进制的字符串 System.out.println(str1); String st

进制、内存分析

一.进制 1.什么是进制 是一种计数的方式,数值的表示形式 汉字:十一   十进制:11  二进制:1011  八进制:13 多种进制:十进制.二进制.八进制.十六进制.也就是说,同一个整数,我们至少有4种表示方式 软件开发,肯定要了解这个 2.二进制 1>   特点:只有0和1,逢2进1 2>   书写格式:0b或者0b开头 3>   使用场合:二进制指令\二进制文件,变量在内存中就是二进制存储 4>   二进制和十进制的互相转换 5>   n为二进制位所能表示的数据范围(

进制问题的几个探究以及拓展

by MedalPluS 什么是进制这里就不赘述了= =,本文着重讨论如何转换进制 n进制转10进制 比如说(10001)2如何转换为10进制? 有一种方法叫做按权展开求和 10001可以展开为20*1+21*0+22*0+23*0+24*1=17,这样就转换为了(17)10 转换为代码如下: 1 int change_n_to_10(int c[],int k){//c为n进制数组 2 int base=k,result=0,index; 3 for(index=len_c-1;i>=0;i-