• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
FightingForWorldFinal
博客园    首页    新随笔    联系   管理    订阅  订阅

HDU1212加深下对取模运算的理解

Big Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3771    Accepted Submission(s): 2586

Problem Description
As we know, Big Number is always troublesome. But it's really important in our ACM. And today, your task is to write a program to calculate A mod B.
To make the problem easier, I promise that B will be smaller than 100000.
Is it too hard? No, I work it out in 10 minutes, and my program contains less than 25 lines.
 

 

Input
The input contains several test cases. Each test case consists of two positive integers A and B. The length of A will not exceed 1000, and B will be smaller than 100000. Process to the end of file.
 

 

Output
For each test case, you have to ouput the result of A mod B.
 

 

 

Sample Input
2 3 12 7 152455856554521 3250
 

 

Sample Output
2 5 1521
 
 1 //原理: (a+b)%c = ((a%c)+(b%c))%c
 2   //    (a*b)%c = ((a%c)*(b%c))%c
 3 #include <iostream>
 4 #include <cstdio>
 5 #include <cstring>
 6 using namespace std;
 7 #define maxn 1000+5
 8 
 9 int num[250];
10 char numc[maxn];
11 
12 int main()
13 {
14     int b;
15     while(cin>>numc>>b)
16     {
17         int i = strlen(numc) - 1;
18         int p = 1,ans = 0;
19         while(i>=0)
20         {
21             ans = (ans + (numc[i]-'0')*p)%b;
22             p *= 10;
23             p %= b;
24             i--;
25         }
26         cout<<ans<<endl;
27     }
28 }
View Code
posted @ 2013-07-24 16:36  Sky-J  阅读(285)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3