题目意思:

给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。

输入描写叙述:測试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。

输出描写叙述:因为结果可能比較大,所以请输出答案mod 1000000007。

http://student.csdn.net/mcs/programming_challenges

题目分析:

同余定理:

s=0;

abc&MOD=((a*10%MOD+b%MOD)*10%MOD+c%MOD)%MOD:

//迭代形式

s=(s*10%MOD+a%MOD)%MOD

s=(s*10%MOD+b%MOD)%MOD

s=(s*10%MOD+c%MOD)%MOD

abc%MOD=s:

此题须要注意的是,链接的a可能不是一位数,一次须要将a写入字符串(同余)进行操作,见代码凝视。

AC代码:

<span style="font-size:18px;">/**
*同于定理,须要注意每一次链接的a不一定是一位数
*比如输入100 3
*1、s=0; s1[3]="100";(a写入字符串)
*2、s=(s*10%MOD+(s1[j]-'0'))%MOD;
*3、下一次链接下一个数,仅仅须要用s继续链接a就可以
*4、每一次用sum+=s;
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define MOD 1000000007
using namespace std;
int main()
{
int a,n;
while(cin>>a>>n){
char s1[10];
sprintf(s1,"%d",a);//将a写入字符串以便于进行逐个取余,(用同余定理)
int len=strlen(s1);
long long sum=0,s=0;
for(int i=0;i<n;i++){
for(int j=0;j<strlen(s1);j++){//每次将数字a分成为每一位取余与上一个数链接
s=(s*10%MOD+(s1[j]-'0'))%MOD;
}
sum=(sum%MOD+s%MOD)%MOD;
//printf("%s\n",s2);
}
cout<<sum<<endl;
}
return 0;
}
</span>

CSDN 厦门大学线下编程比赛第一题:求和(同余定理)的更多相关文章

  1. CSDN 四川大学线下编程比赛第一题:数字填充

    题目意思: http://student.csdn.net/mcs/programming_challenges peter喜欢玩数字游戏,但数独这种游戏对他来说太简单了,于是他准备玩一个难的游戏. ...

  2. CSDN 四川大学线下编程比赛第二题:Peter的X

    题目详情: http://student.csdn.net/mcs/programming_challenges Peter是个小男孩.他总是背不清26个英文字母. 于是,刁钻的英语老师给他布置了一个 ...

  3. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

    金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同一时候他也是一个黑客. 考试结束后不久.他吃惊的发现自己的高等数学科目竟然挂了,于是他果断入侵了学校教务部站点. 在入侵的过程中.他发 ...

  4. [py]letcode第一题求和

    letcode第一题, tm的不好弄. 想了很久想到了一个粗蠢的解决办法. Given an array of integers, return indices of the two numbers ...

  5. 代码审计-四叶草杯线下awd比赛源码web2

    今晚简单来看看那天比赛的源码吧,比赛的时候还是有些慌没有好好去静下心看代码. awd给的题中的漏洞,都是那种可以快速让你利用拿到权限后得到flag的那种,特别复杂利用的一般没有. 建议先黑盒去尝试,例 ...

  6. JAVA编程思想第一题出现错误

    //: object/E01_DefaultInitialization.java public class E01_DefaultInitialization{ int i ; char c ; p ...

  7. 【科创人·独家】MegaEase左耳朵耗子陈皓复盘创业:第一年盈利被当骗子,线下广阔天地大有可为

    [科创人·独家]MegaEase左耳朵耗子陈皓复盘创业:第一年盈利被当骗子,线下广阔天地大有可为 原创: babayage CTO科创圈  与上百位科技创业者共同关注科创人的成长心路. 文末有彩蛋:& ...

  8. [ X.XX]CF每日一题系列线下更新中

    现在做的都好水啊,就不写博客了,线下有记录滴

  9. 由于空间,注定的结果——第五届山东省ACM编程比赛总结

    应该是,这是一个很失败的结果.目前省赛玩具.作为志愿者说,,铁匠是一个很丢人的事. 作为队长.全然没有想到会是这种一次旅程.尽管由于去baidu的实习和各种offer的申请,对acm抱着能水就水绝不深 ...

随机推荐

  1. Concurrent control in SQLite

    This document describes the technologies to concurrent access to a SQLite database. There are also s ...

  2. tomcat 访问IP直接访问项目

    apache-tomcat-7.0.52\conf下server.xml文件 <Connector connectionTimeout="20000" port=" ...

  3. arx刷新图形界面

    actrTransactionManager->flushGraphics(); acedUpdateDisplay();

  4. acedssget F 方式

    ads_point p1; ads_point p2; acedGetPoint(NULL, _T("\n插入第一点"), p1); acedGetPoint(p1, _T(&qu ...

  5. 19MVC设计模式

    MVC设计模式 MVC英文即Model-View-Controller, 即把一个应用的输入.处理.输出流程按照Model.View.Controller的方式进行分离,这样一个应用被分成三个层——模 ...

  6. P1616 疯狂的采药(洛谷,动态规划递推,完全背包)

    先上题目链接:P1616 疯狂的采药 然后放AC代码: #include<bits/stdc++.h> #define ll long long using namespace std; ...

  7. 51nod 1050 循环数组最大子段和【动态规划】

    N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n] ...

  8. C语言中指针的加减运算

    参考文章,值得一看 char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; ...

  9. 利用 Python 批量修改文件名

    开发的第一步,首先得熟悉脚本中使用的模块函数,废话不多说,开干! 1 函数介绍 1.1 os 模块 (1)os.lisdir() >>> import os >>> ...

  10. Java基础学习总结(80)——Java性能优化详解

    让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了.在面对对象的环境中,性能问题就像来势凶猛的野兽.但JVM的复杂性将性能调整的复杂程度增加了一个级别.这里Refcard涵盖了JVM in ...