1.Pell数列a1, a2, a3, …的定义是这样的,a1 = 1, a2 = 2, … , an = 2 * an − 1 + an - 2 (n > 2)。
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
#include<iostream>
using namespace std;
unsigned int s[1000000];
unsigned int w[1000000];
int main()
{
int n,m;s[1]=1;s[2]=2;
for(int i=3;i<1000000;++i)
{
s[i]=(2*s[i-1]+s[i-2])%32767;
}
cin>>n;
for(int i=0;i<n;++i)
{
cin>>m;
w[i]=m;
}
for(int i=0;i<n;++i)
{
cout<<s[w[i]]<<endl;
}
return 0;
}
2.读入n(1 <= n <= 10000)个整数,求它们的和与均值。
#include<iostream>
using namespace std;
int main()
{
int n,m;
long long int sum=0;
cin>>n;
for(int i=0;i<n;++i)
{
cin>>m;
sum+=m;
}
printf("%ld %.5f",sum,sum/(double)n);
return 0;
}
3.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同。
请使用【一行代码】补全bitManipulation1函数使得程序能达到上述的功能
#include <iostream>
using namespace std;
int bitManipulation1(int n, int m, int i) {
// 在此处补充你的代码
}
int main() {
int n, m, i, t;
cin >> t;
while (t--) {
cin >> n >> m >> i;
cout << bitManipulation1(n, m, i) << endl;
}
return 0;
}
#include <iostream>
using namespace std;
int bitManipulation1(int n, int m, int i) {
return ((1<<i)&m)|((~(1<<i))&n);
}
int main() {
int n, m, i, t;
cin >> t;
while (t--) {
cin >> n >> m >> i;
cout << bitManipulation1(n, m, i) << endl;
}
return 0;
}
4.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位是n的第i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation2函数使得程序能达到上述的功能
#include <iostream>
using namespace std;
int bitManipulation2(int n, int i) {
// 在此处补充你的代码
}
int main() {
int t, n, i;
cin >> t;
while (t--) {
cin >> n >> i;
cout << bitManipulation2(n, i) << endl;
}
return 0;
}
#include <iostream>
using namespace std;
int bitManipulation2(int n, int i) {
return (1<<i)^n;
}
int main() {
int t, n, i;
cin >> t;
while (t--) {
cin >> n >> i;
cout << bitManipulation2(n, i) << endl;
}
return 0;
}
5.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的左边i位是n的左边i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation3函数使得程序能达到上述的功能
#include <iostream>
using namespace std;
int bitManipulation3(int n, int i) {
// 在此处补充你的代码
}
int main() {
int t, n, i;
cin >> t;
while (t--) {
cin >> n >> i;
cout << bitManipulation3(n, i) << endl;
}
return 0;
}
#include <iostream>
using namespace std;
int bitManipulation3(int n, int i) {
return ((int)(-2147483648)>>(i-1))^n;
}
int main() {
int t, n, i;
cin >> t;
while (t--) {
cin >> n >> i;
cout << bitManipulation3(n, i) << endl;
}
return 0;
}