一【题目难度】
二【题目编号】
三【题目描述】
- 设一个数
A
A
A 的最低
D
D
D 位形成的数是
a
d
a_d
ad?。如果把
a
d
a_d
ad? 截下来移到
A
A
A 的最高位前面,就形成了一个新的数
B
B
B。
B
B
B 是
A
A
A 的多少倍?例如将 12345 的最低 2 位 45 截下来放到 123 的前面,就得到 45123,它约是 12345 的 3.66 倍。
四【题目示例】
五【解题思路】
- 这个题目的思路还是比较好想的,只需要把规定的位数给截下来,然后再拼接上,但是这里需要一个函数获取这个数字的长度,知道剩余长度了,才能拼接上,最后要记得转为浮点数输出小数点后两位
六【最终得分】
七【代码实现】
#include<stdio.h>
#include<math.h>
int getLen_1101_BIsHowManyTimesOfA(int n)
{
int len = 0;
while(n != 0)
{
len++;
n /= 10;
}
return len;
}
int main()
{
int A,D,B,temp,keep,remainder,len;
scanf("%d %d",&A,&D);
keep = A;
len = getLen_1101_BIsHowManyTimesOfA(A);
temp = pow(10,D);
remainder = A % temp;
A /= temp;
temp = pow(10,len - D);
B = (remainder * temp + A);
double res = B * 1.0 / keep;
printf("%.2f",res);
return 0;
}
八【提交结果】
|