求x个2011 相乘之后,最后y位的数字是多少?
x<=10^6, 1<=y<=5.
数值超过long long,用取余
a*b%m=(a%m)*(b%m)%m
#include<iostream>
using namespace std;
int main()
{
int x,y,a,i=1,t=1,k=1;
long long sum=1;
cin>>x>>y;
while(i<=y)
{
i++;
sum=sum*10;
}
while(k<=x)
{
k++;
t=t*2011%sum;
}
if(t/(sum/10)==0)
cout<<‘0‘;
cout<<t<<endl;
return 0;
}
已知一对兔子,每个月可以生一对小兔,而小兔经过一个月生长后也可每月生一对小兔,即新出生的兔子,在出生后的第三个月开始,每个月生一对兔子。
所以兔子的对数是:第一个月1对(老兔子),第二个月2对,第三个月3对,第四个月5对,…,假设兔子不死,问x个月后,一共有多少对兔子?x<=50.
赋值
#include<iostream>
using namespace std;
int main()
{
long long a,b,c,x;
cin>>x;
a=1;b=2;c=3;
for(int i=3;i<=x;i++)
{
c=a+b;
a=b;
b=c;
}
cout<<c<<endl;
return 0;
}
时间: 2024-11-16 02:02:51