求一个大整数对10003的余数

输入

第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。

输出

输出n整除10003之后的余数,每次输出占一行

样例输入

3
4
5
46545654

样例输出

4
5
6948

同余定理:(a+b)%c=((a%c)+(b%c))%c 
 m%n举例: 
 123 % n = (((1%n*10%n+2%n)%n*10%n)%n+3%n)%n

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 1000001
 4
 5 int main(){
 6     int T;
 7     char number[N];
 8     int temp;
 9     int i;
10     int length;
11
12     scanf("%d",&T);
13
14     while(T--){
15         temp=0;
16
17         scanf("%s",number);
18         length=strlen(number);  //由于number位数很大,所以当把strlen放进循环时就超时了
19
20         for(i=0;i<length;i++)
21             temp=(temp*10+(number[i]-‘0‘))%10003;
22
23         printf("%d\n",temp);
24     }
25
26     return 0;
27 }
时间: 2024-09-15 17:28:20

求一个大整数对10003的余数的相关文章

求一个大神运维大师 教我 我刚从事这个行业 我勤奋好学 求师傅

求一个大神运维大师 教我 我刚从事这个行业  我勤奋好学 求师傅 hello world  师傅 求指导  可以提要求  我喜欢linux 饥渴难耐了 感谢                    师傅

ACM学习之路————一个大整数与一个小整数不得不说得的秘密

这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #include<cstdio> #include<cstring> using namespace std; char s[1000],result[1000]; int main() { long long divis; int n,i,k,flag,len; char c; while

阿里 2014-08-29 校招机试题 求一个存放整数的二叉树相差最大的两节点差值绝对值

题目:写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这颗二叉树中相差最大的两个节点间的差值绝对值.请注意程序效率. 如果是数值之差,感觉怎么着也得遍历一遍,直接修改下二叉树的基本遍历代码就可以. #include<stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node * left; struct Node * right; } BitNode, *BiTree; /* 求

定义一个大整数类,并重载乘法*运算符

1 struct bigint{ 2 int a[500]; //可表示1000位以内的整数 3 bigint& operator*(int & value){ 4 for(int i=0;i<300;i++) 5 a[i]=a[i]*value; 6 int c=0; 7 for(int i=0;i<300;i++) 8 { 9 a[i]=a[i]+c; 10 c=a[i]/100; 11 a[i]=a[i]%100; 12 } 13 return *this; 14 } 1

求较大整数n的阶乘,因为n较大时n的阶乘超出了正常类型的表示范围,采用数组进行操作(java实现)

package net.yk.mlgorithm; /**  * 求较大数的阶乘  * @author Administrator  *  * @param <T>  */ public class ArraysMul<T> { public static void main(String[] args) { int[] array = factorial(1000); printNum(array); } /**  * 计算两个两组的乘  * @param a   * @para

POJ 1181 大整数是否为素数以及求大整数的质因数-数论-(Miller_rabin+Pollard_rho)

题意:求一个整数是否是素数,如果不是,则输出它最小的质因数. 分析: 判断一个大整数是否为素数用Miller_rabin算法,求一个大整数的所有质因数用Pollard_rho算法.这题就是直接套模板. 另外这里的gcd和pow_mod不能用一般的方式,T了.代码里我注释掉的就是T了的写法. 代码: #include<iostream> #include<cmath> #include<ctime> #include<cstdio> #include<a

大整数算法[04] 位操作

上一篇文章介绍了大整数的比较操作,今天来谈谈和位相关的操作. ★ 引子         在大整数的表示和相关定义这篇文章中讲到了大整数是如何表示的.为了方便后面的讲解,这里先按照前面的定义,给出一个大整数的例子(32位系统下,每一个数位长度为32比特): 假设有一 bignum x,十进制值为 1134924633606254832,对应的十六进制值为 0xFC00FF0F0F0F0F0,那么按照大整数的表示方法, 2^32 进制就表示成(每一位用逗号隔开): (264245232,404232

高精度计算-大整数除法

问题描述 求两个大的正整数相除的商 输入数据 第 1 行是测试数据的组数 n,每组测试数据占 2 行,第 1 行是被除数,第 2 行是除数. 每组测试数据之间有一个空行,每行数据不超过 100 个字符 输出要求 n 行,每组测试数据有一行输出是相应的整数商 解题思路 基本的思想是反复做减法,看看从被除数里最多能减去多少个除数,商就是多少.一个一个减显然太慢,如何减得更快一些呢?以 7546 除以 23 为例来看一下:开始商为 0.先减去 23 的 100 倍,就是 2300,发现够减 3 次,余

大整数运算---模拟笔算

/* *m=a[k]×10k-1+a[k-1]×10k-2+-.+a[2]×10+a[1] *其中a[0]保存该长整数的位数. * *模拟笔算 */ #include<iostream> #include<cstring> using namespace std; #define SIZE 255 void getl(char* n);//获取长整数 void prt(char* n);//打印长整数 int cmp(char* n1, char* n2);//比较长整数大小 vo