若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

2370: 圆周率

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,215

题目描述

YT大学附小举办背诵圆率 PI 的比赛。谁背的正确的位数越多,谁为胜者。很多小学生背的位数很多,但是往往会有少数位置的数是错误的。为了快速加测出错误的圆周率,将圆周率 PI 小数点后的数字求模进行简单验证。
例如:某学生背的圆周率为 3.15,则1510 mod 9 = 6,可以初步判定该学生背的圆周率错误。

数有不同的进制表示,比如二进制、八进制、十进制等。现在给你一个任务,给定一个n进制,要它对n-1求模,比如:
             782910 mod 9 =  8
             377777777777777738 mod 7 =6
             1234567 mod 6 =3
(注意:377777777777777738=112589990684261910   1234567 =2287510 )
你的任务是读入一些不同进制的数,求模。

输入

第一行表示为整数P(1≤P≤1000),表示一共的测试数据组数。
每组测试测试数据一行,由三个数组成,第一个数表示组号,第二个数B(2≤B≤10),表示B进制,第三个数D表示要求模的数,D的位数不超过10,000,000位。

输出

每组测试数据一行,每一个数为组号,第二个为 D mod (B-1)

样例输入

6
1 10 7829
2 7 12345
3 6 432504023545112
4 8 37777777777777773
5 2 101011111111110000000000000000000011111111111111111111111
6 10 145784444444444457842154777777777547845993

样例输出

1 8
2 3
3 1
4 6
5 0
6 6

参考代码

#include<stdio.h>
int main() 
{
    int N,I,i,m,n,v;
    char s[10001];
    scanf("%d",&N);
    for (I=0;I<N;I++) 
    {
        scanf("%d%d %s",&v,&n,s);
        printf("%d ",v);
        m=i=0;
        while(s[i])
                    m=(m*n+(s[i++]-48))%(n-1);
        printf("%dn",m);
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist