首页 > 其他分享 >PAT Basic 1101. B是A的多少倍

PAT Basic 1101. B是A的多少倍

时间:2023-04-16 10:57:08浏览次数:40  
标签:10 PAT weight int 1101 num 多少倍 Basic numLen

PAT Basic 1101. B是A的多少倍

1. 题目描述:

设一个数 \(A\) 的最低 \(D\) 位形成的数是 \(a_d\)。如果把 \(a_d\) 截下来移到 \(A\) 的最高位前面,就形成了一个新的数 \(B\)。\(B\) 是 \(A\) 的多少倍?例如将 12345 的最低 2 位 45 截下来放到 123 的前面,就得到 45123,它约是 12345 的 3.66 倍。

2. 输入格式:

输入在一行中给出一个正整数 \(A\)(\(≤10^9\))和要截取的位数 \(D\)。题目保证 \(D\) 不超过 \(A\) 的总位数。

3. 输出格式:

计算 \(B\) 是 \(A\) 的多少倍,输出小数点后 2 位。

4. 输入样例:

12345 2
12345 5

5. 输出样例:

3.66
1.00

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

回血题,根据题意把正整数\(A\)和\(B\)算出来即可,实际上就是找出十进制数各位的正确权重。这里因为正整数\(A\)最大为\(10^9\),那么相应的\(B\)也存在上界\(10^9\),不用担心int类型存不下。

My Code:

#include <stdio.h>
#include <string.h> // strlen header
#include <math.h> // pow header

int main(void)
{
    char num[11] = "";
    int numA=0, numB=0;
    int d=0;
    int weight=0; // weight of every bit
    int i=0; // iterator
    int numLen = 0;
    
    scanf("%s%d", num, &d);
    numLen = strlen(num);
    //printf("numLen: %d\n", numLen);
    
    weight = numLen-1;
    for(i=0; i<numLen; ++i)
    {
        numA += pow(10, weight) * (num[i]-'0');
        --weight;
    }
    
    weight = numLen-1;
    i = numLen - d;
    while(weight>=0)
    {
        numB += pow(10, weight) * (num[i]-'0');
        --weight;
        ++i;
        if(i==numLen) i=0;
    }
    
    //printf("%d %d\n", numA, numB);
    printf("%.2f\n", numB*1.0/numA);
    
    return 0;
}

标签:10,PAT,weight,int,1101,num,多少倍,Basic,numLen
From: https://www.cnblogs.com/tacticKing/p/17322643.html

相关文章

  • 免费的HwBasicLib4S7-200Smart组件库
    HwBasicLib是我们旗下的通用组件库,目前包含了S7-1200/1500+TIAWinCC和经典WinCC等多款产品。今天介绍的是其中的一款HwBasicLib4S7-200Smart组件库。该库是从最开始的HwBasicLib4S7-200组件库升级而来。因为我们已经有好几年不再使用S7-200Smart这款PLC了,所以决定把它免费。......
  • AS_Path Filter的应用方式
    AS_PathFilter的应用方式AS_Path过滤器只定义一个过滤工具,需要在某个地方调用这个过滤工具才会最终生效。在BGP中可以有两种方式调用AS_Path过滤器:通过peer命令直接调用AS_Path_Filter。通过route-policy调用AS_Path_Filter。应用方式一:通过peer命令直接调用as-path-filter#ipas......
  • PAT Basic 1100. 校庆
    PATBasic1100.校庆1.题目描述:2019年浙江大学将要庆祝成立122周年。为了准备校庆,校友会收集了所有校友的身份证号。现在需要请你编写程序,根据来参加校庆的所有人士的身份证号,统计来了多少校友。2.输入格式:输入在第一行给出不超过\(10^5\)的正整数N,随后N行,每行给出......
  • git 遇到的CApath: none问题解决
    在适应git时,遇到了如下问题。fatal:unabletoaccess'https://github.com/brunosimon/folio-2019.git/':errorsettingcertificateverifylocations: CAfile:D:/明月下/Git/mingw64/ssl/certs/ca-bundle.crtCApath:none第一反应是查找这个文件是什么,在不在。首先这......
  • PAT Basic 1099. 性感素数
    PATBasic1099.性感素数1.题目描述:“性感素数”是指形如\((p,p+6)\)这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。(原文摘自http://mathworld.wolfram.com/SexyPrimes.html)现给定一个整数,请你判断其是否为一个性感素数。2.输入格......
  • centos7 PATH 环境变量设置
    https://blog.csdn.net/qq_39715000/article/details/1250231901、系统环境变量系统环境变量对全部的用户生效,设置系统环境变量有三种方法。1)在/etc/profile文件中设置。用户登录时执行/etc/profile文件中设置系统的环境变量。但是,Linux不建议在/etc/profile文件中设置系统环......
  • os.path.dirname;os.path.abspath;os.walk方法详解
    os.path.dirname:os.path.dirname(path):用来获取文件的路径   os.path.dirname(__file__):用来获取当前py文件的上层目录例如:当前文件所处位置为:D:/AutoTestSys/script/AutoFunction/test1.pyprint(os.path.dirname(__file__))返回的结果为: D:/AutoTestSys/script/Aut......
  • PAT Basic 1097. 矩阵行平移
    PATBasic1097.矩阵行平移1.题目描述:给定一个 \(n×n\) 的整数矩阵。对任一给定的正整数 \(k<n\),我们将矩阵的奇数行的元素整体向右依次平移\(1、……、k、1、……、k、……\)个位置,平移空出的位置用整数 \(x\) 补。你需要计算出结果矩阵的每一列元素的和。2.输入格......
  • PAT Basic 1096. 大美数
    PATBasic1096.大美数1.题目描述:若正整数 \(N\) 可以整除它的4个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。2.输入格式:输入在第一行中给出正整数 \(K\)(\(≤10\)),随后一行给出 \(K\) 个待检测的、不超过 \(1......
  • 二进制patch工具xdelta的使用方法
     Xdelta是一个二进制的diff工具[同时又兼具了patch功能],diff和patch是Unix世界里很有用的一对工具:我们通常将它们结合起来实现生成补丁,应用补丁的目的。如果要处理的不是文本文件,是二进制文件,我们可以使用一个专门用来处理二进制文件的工具–xdelta。      Xdelta......