这两题都是ACM各大网络赛的“签到题”,可以退出,只要不是徐州这种特别变态的赛区,一般总有一道不算难的题。
爱丽丝,一个年级的学生66正在考虑一个奥林匹克数学问题,但她感到如此绝望,以至于她哭了。她的同学鲍勃对这个问题一无所知。所以他想让你帮他。问题是:
我们表示K!k!:
K!=1\乘以2\c点\乘以(k-1)\kk!=1×2×⋯×(k−1)×k
我们表示SS:
S=1\乘以1!+2\乘以2!+\cdots+S=1×1!+2×2!+⋯+
(n-1)\次数(n-1)!(n−1)×(n−1)!
然后SS模块nn是_
您将得到一个整数。nn.
你得计算一下SS模数nn.
输入
第一行包含一个整数。T(T_Le 1000)T(T≤1000),表示测试用例的数量。
对于每个测试用例,都有一行具有整数的行。nn.
保证2 le 10{18}2≤n≤1018.
输出量
对于每个测试用例,打印一个整数。SS模数nn.
暗示
第一个测试是:S=1\乘以1!=1S=1×1!=1,和11模数22是11.
第二个测试是:S=1\乘以1!+2\乘以2!=5S=1×1!+2×2!=5,和55模数33是22.
样例输入复制
2 2 3
样例输出复制
1 2
题目来源
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
long long n;
while(t--)
{
cin>>n;
cout<<n-1<<endl;
}
}
没错代码就是这样的,我开始正儿八经的按常规方法搞,时间复杂度是o(N)都过不了,然后找规律就过了。。。