首页 > 其他分享 >OJ 进制转换 判断进制【C】

OJ 进制转换 判断进制【C】

时间:2024-04-09 16:58:06浏览次数:18  
标签:转换 进制 int sum && 字符串 include OJ

进制转换

好久没写C,太生疏了,记一下我卡住的几个点

1.C没有字符串这种数据类型,要实现读入一个未知长度的字符串比较简单的方法

建立一个一定比这个字符串长的数组,而字符串在数组中的存储是会自动以'\0'结尾的,所以遍历时遍历到'\0'就是字符串的末尾

2.类型转换格式   (要转换到的类型)转换依赖的值

注意只是得到一个新的数,原变量的值不变

 #include<stdio.h>
 #include<string.h>
int main(){
  int N;
  scanf("%d",&N);
  int i;
  for(i=0;i<N;i++){
    int K;
    char n[10];
    scanf("%d %s",&K,n);
    int j,sum=0;
    for(j=0;n[j]!='\0';j++){
    	int n2;
      if(n[j]<='9' && n[j]>='0'){
        n2=(int)(n[j]-'0');
      }
      if(n[j]<='G' && n[j]>='A'){
        n2=(int)(n[j]-'A'+10);
      }
      sum=sum*K+n2;
    }
    printf("%d\n",sum);
  }
  return 0;
}

判断进制

#include<stdio.h>
int main(){
  int N;
  scanf("%d",&N);
  int i;
  for(i=0;i<N;i++){
    char n[10];
    scanf("%s",n);
    int charge[4];
    charge[0]=charge[1]=charge[2]=charge[3]=1;
    int j;
    for(j=0;n[j]!='\0';j++){
      if(n[j]>='A' && n[j]<'G'){
        charge[0]=charge[1]=charge[2]=0;
        break;
      }
      if(n[j]>='G' && n[j]<='Z'){
        charge[0]=charge[1]=charge[2]=charge[3]=0;
        break;
      }
      if(n[j]>='8' && n[j]<='9'){
        charge[1]=0;
      }
      if(n[j]>'1' && n[j]<='9'){
        charge[0]=0;
      }
    }
  for(j=0;j<3;j++){
    printf("%d ",charge[j]);
  }
  printf("%d\n",charge[3]);
  }
  return 0; 
}

标签:转换,进制,int,sum,&&,字符串,include,OJ
From: https://blog.csdn.net/2302_79596028/article/details/137556323

相关文章

  • 负进制转化
    思想:1.用短除法像处理正常进制一样将所有余数算出来  //余数转化为正数2.  负数转化公式:被除数=商*除数+余数        =商*除数+除数-除数+余数       =除数*(商+1)+(余数-除数)举个例子:-7(十进制)转化为(-2进制)7/-2=3+(-1);因为3+1=......
  • NAT转换-4.9
    *****************************************************************************源NAT技术只对源地址进行转换;可以分为NATNO-PAT、NAPT、EASYIP和三元组NAT*******************************************************************************NATNO-PAT非端口地址转换,只转......
  • CEF编译报错:ValueError: path is on mount '\\\\tab_group_types.mojom-webui.js'
    F:\code\chromium_git\chromium\src>autoninja-Cout\Debug_GN_x64cef"f:\code\depot_tools\bootstrap-2@3_11_6_chromium_30_bin\python3\bin\python3.exe"F:\code\depot_tools\ninja.py-Cout\Debug_GN_x64cef-j10ninja:Enteringdirec......
  • 二进制求子集(位图法)
    0.使用二进制方式求子集例如:a5a4a3a2a1111111.代码模板#include<bits/stdc++.h>usingnamespacestd;intn;inta[]={1,2,3,4,5,6,7,8,9,10};//求a[0]->a[n-1]的所有子集voidprint_subset(intn){ //i<(1<<n)即i<=2^(n-1),是......
  • 批量转换pcd数据的编码形式:Binary转ASCII
    本文为CSDN晚意丶3D原创,转载请表明原文出处———————————————————————————————————————批量转换pcd数据的编码形式:Binary转ASCII代码结果相关内容pcd点云格式的编码有两种,分别是Binary和ASCIIBinary是二进制格式,用文......
  • C语言 08 类型转换
    一种类型的数据转换为另一种类型的数据,这种操作称为类型转换。类型转换分为自动类型转换和强制类型转换。自动类型转换比如现在希望将一个short类型的数据转换为int类型的数据:#include<stdio.h>intmain(){shorts=10;//直接将s的值传递给i即可,但是注意此......
  • 将一个结构体里面的数据转为 小端对齐的二进制流
    现在有一个C++的结构体,需要把它转为二进制流,而且是小端对齐的。我们还需要将一个小端对齐的二进制流,转为对应的结构体。appendLittleEndianparseLittleEndian这2个方法是chatgpt提供给我的,功能能准确实现。代码也比较简洁。 #include<iostream>#include<vector>#inc......
  • 时间戳转换日期格式
    1、时间戳入参String类型importjava.text.DateFormat;importjava.text.SimpleDateFormat;//毫秒时间戳转换日期格式:2023-04-21defdate=newDate(Long.parseLong("1712473439000"));//需要转LongDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");def......
  • 公钥私钥和模数指数相互转换
    pem格式公钥私钥读取解析公钥私钥pem格式加解密示例根据私钥pem生成模数和指数NED生成模数和指数NED的公钥私钥NED导出pem格式#include<SylixOS.h>#include<stdio.h>#include<crypto.h>#include<mbedtls/ssl.h>#include<mbedtls/platform.h>......
  • 免费的PDF转换小程序,无广告、无限制
    网上的PDF转换工具其实也不少,但大多数都是收费的,要么广告一大堆。于是自己整了一个免费且没有广告的PDF转换小程序,主要的功能有:PDF转WordPDF转PPTPDF转ExcelPDF转图片PDF转文字Word转PDFPPT转PDFExcel转PDF图片转PDF网页转PDFPDF加水印PDF去水印PDF加密PDF压缩......