连乘取余

#include
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<return 0;
}

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

#include
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 {
  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<return 0;
}
错到0上。没有处理保留末尾y个数字时第一位是零的问题。已改正,AC 

你可能感兴趣的:(题解+注释)