zoukankan      html  css  js  c++  java
  • 数论——同余

    HDU 1212  题目链接  点击打开链接

    description:给定一个大数a, 求模b的结果。

    题目分析:由于a很大,因此需要引入字符串进行处理!

    算法分析:   同余定理

    1. ( m + n ) % c =  (m % c + n% c) % c

    2. (m* n ) % c =( (m % c ) * ( n% c))  % c

    3. (m ^ n) % c = ((m % c) ^ n)  % c                   (此定理可用于快速幂运算   另作讨论)

    此题需要用到定理1 。举个例子:设大数 m = 1234, 模n。

    其结果为    ((((1 * 10) % n + 2 % n) % n* 10 % n + 3 % n) % n * 10 % n + 4 % n) % n

    此题代码:

    #include <iostream>
    using namespace std;
    
    char a[1010];
    
    int main()
    {
    	int b;
    	while (cin >> a>> b)
    	{
    		int flag = 0;
    		for (int i = 0; a[i] != ''; i++)
    			flag = ((flag * 10) % b+ (a[i] - '0') %b) % b;
    		cout << flag << endl;
    	}
    	return 0;
    }

    大数求余模板

    /* 大数a, 模b*/
    #include <iostream>
    using namespace std;
    
    char a[1010];
    
    int main()
    {
    	int b;
    	while (cin >> a>> b)
    	{
    		int flag = 0;                //作为临时保存变量
    		for (int i = 0; a[i] != ''; i++)
    			flag = ((flag * 10) % b+ (a[i] - '0') % b) % b;
    		cout << flag << endl;
    	}
    	return 0;
    } 


  • 相关阅读:
    innerHTML使用方法
    HDU 1426 Sudoku Killer
    Junit使用教程(一)
    HLS协议实现
    GPIO
    TraceView总结
    在kettle中实现数据验证和检查
    用户向导左右滑动页面实现之ImageSwitcher
    DWZ使用笔记
    oracle进程
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194878.html
Copyright © 2011-2022 走看看