上篇文章文章我居然没说废话,也不知道效果咋样,这次我们也废话不多说,开始!
一对
时间限制:1秒 内存限制:256M
题目描述
小可突发奇想在 11 到 nn 的大小以内,随便找一个整数aa,可能存在另一个数bb,使得a + b = na+b=n。他想和最好的朋友达达一起玩这个游戏。于是小可负责找较小的整数aa,达达负责找较大的整数bb,而且他们找的数不能相同哦!
遇到较大的数,他们能算一整天呢!请你帮忙写一个程序,计算一下 11 到 nn 以内,有多少对(a,b)(a,b)符合要求。
输入格式
第一行包含,一个整数TT,表示共有TT组测试数据。
接下来TT行,每行一个整数nn。
输出格式
共TT行,每行一个整数,表示 11 到 nn 以内,有多少对(a,b)(a,b)符合要求。
输入样例
6
7
1
2
3
2000000000
763243547
输出样例
3
0
0
1
999999999
381621773
数据范围
30%,1<=T<=10,1<=n<=10^31<=T<=10,1<=n<=103
100%,1<=T<=10^4,1<=n<=10^91<=T<=104,1<=n<=109
思路
这道题就是判断n是不是2的倍数,是就输出n/2-1,不是就输出n/2,直接遍历,完事。
正确代码
#include<iostream>
using namespace std;
long long n;
int main(){
int t;
cin>>t;
for(int i=1;i<=t;i++){
cin>>n;
if(n%2==0){
cout<<n/2-1<<endl;
}
else{
cout<<n/2<<endl;
}
}
return 0;
}