中级守护
7418 周期问题
经验值:800
时间限制:1000毫秒
内存限制:128MB
题目描述 De**ion
有一列数,按5、6、2、4、5、6、2、4、……排列。
(1)第x个数是多少?(2)前x个数相加的和是多少?
输入描述 Input De**ion
输入一个整数x
输出描述 Output De**ion
两个整数,以一个空格隔开,分别表示第x个数,以及前x个数的和
样例输入 Sample Input
5
样例输出 Sample Output
5 22
数据范围及提示 Data Size & Hint
x<=100
代码:
#include<iomanip>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int b[4]={5,6,2,4};
int main() {
int a,c=0,m,t,n;
cin>>a;
m=5+6+2+4;
if(a%4==0){
cout<<b[0]-1;
}else if(a%4==1){
cout<<b[1]-1;
}else if(a%4==2){
cout<<b[2]-1;
}else if(a%4==3){
cout<<b[3]-1;
}
t=a%4;
n=a/4;
cout<<" ";
if(n%4==0){
cout<<t*m+b[0]-1;
}else if(n%4==1){
cout<<t*m+b[1]-1;
}else if(n%4==2){
cout<<t*m+b[2]-1;
}else if(n%4==3){
cout<<t*m+b[3]-1;
}
return 0;
}