Consecutive Digits(hdu 2731)

来源:互联网 发布:阿里云别名解析 编辑:程序博客网 时间:2024/06/05 08:42

传送门:hdu 2731。

题意就是让你把一个十进制分数转化为一个七进制小数,并且输出指定的小数位数。

转化的时候要明确对于小数部分来说,求每一位都相当于要比上一位多除以一个1/7(求小数部分第一位要除以1/7,求第二位要除以1/49等等),即每位要乘以个7,然后再除以分母就是该位对应的数了,不要忘记进行取余求剩下的部分,有个小细节就是读入数以后要先进行一次取余,因为要保证进行操作的数要小于1/7,大于1/7的部分肯定在整数部分就被转化完了。

#include<stdio.h>int main(){int t;scanf("%d",&t);int cnt=0;int a,b,c,d;while((cnt++)<t){scanf("%d %d %d %d",&a,&b,&c,&d);printf("Problem set %d: %d / %d, base 7 digits %d through %d: ",cnt,a,b,c,d);a%=b;for(int i=0;i<=d;i++){a*=7;if(i>=c)printf("%d",a/b);a%=b;}putchar('\n');}}


0 0
原创粉丝点击