问题标题: 酷町堂:3885 怎么错了?

0
0
已解决
孙坚恒
孙坚恒
资深守护
资深守护

孙坚恒在2019-07-24 20:39:41追加了内容

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
    int n,sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        sum=pow(7,n);
        sum%=10;
    }
    cout<<sum;
    return 0;
}


1
已采纳
丁浩然
丁浩然
新手光能
新手光能

你的方法明显不行,7的100000次方早已超过long long

7^100000连科学计算器都爆了,这样只能用高精度,可又十分麻烦

所以不妨换一种思路:

7^1 mod 10=7;

7^2 mod 10=9;

7^3 mod 10=3;

7^4 mod 10=1;

7^5 mod 10=7;

不难发现,其实余数每四个一循环,所以思路是拿到一个数n,将它模4

如果为0 输出1;

如果为1 输出7;

如果为2 输出9;

反之输出3;

打字不累,希望采纳

丁浩然在2019-07-25 19:21:57追加了内容

丁浩然在2019-07-25 19:23:27追加了内容

0
0
0
0
胡光栩
胡光栩
初级守护
初级守护

7^1尾数是7;

7^2尾数是9;

7^3尾数是3;

7^4尾数是1;

7^5尾数是7;

……

可以这样写

胡光栩在2019-07-24 23:25:23追加了内容

对了,你的方法也行,不过sum初值要为1

0
我要回答