连乘取余

#include<iostream>
using namespace std;
int main()
{
 long long x,y;
 cin>>x>>y;
 int y1=1,ys=2011;
 for(int i=1;i<=y;i++)
  y1=y1*10;
 for(int i=2;i<=x;i++)
  ys=ys*2011;
 ys=ys%y1;
 cout<<ys;
return 0;
}

输入格式 Input Format 
    两个整数x和y。
  
  
 输出格式 Output Format 
   一个整数,表示x个2011 相乘之后,最后y位的数字。
就粘下错码,回家改。

#include<iostream>
using namespace std;
int main()
{
 int y,x;
 cin>>x>>y;
 int y1=1;
 long long ys=2011;
 for(int i=1;i<=y;i++)
  y1=y1*10;
 for(int i=2;i<=x;i++)
  ys=ys*2011%y1;
 
 if(ys%y1<y1)
 {
  int yy=0;
  int y2=ys%y1;
  while(y2>0)
  {
   yy++;
   y2=y2/10;   
  }
  for(int i=1;i<=y-yy;i++)
   cout<<'0';
 }
 cout<<ys%y1;
return 0;
}
错到0上。没有处理保留末尾y个数字时第一位是零的问题。已改正,AC 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值