本文主要是介绍笔试题0622,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:给一个斐波那契数列0,1,1,2,3,5,8,13,21,34…然后给一个整数n,求数列中前n个数含有多少个1.
这题太简单了。
招银网络的测试岗位竟然还考数据库大题,措手不及,忘记复习了。。。
#include <iostream>
#include <vector>
using namespace std;
int num_of_1(int n)
{int count = 0;while (n){if (n % 10 == 1)count++;n /= 10;}return count;
}
//0,1,1,2,3,5,8,13,21,34...
int main()
{int n;while (cin >> n){if (n == 1){cout << 0 << endl;}else if (n == 2){cout << 1 << endl;}else{vector<int>f(n + 1, 0);f[1] = 0;f[2] = 1;for (int i = 3; i <= n; i++){f[i] = f[i - 1] + f[i - 2];}int res = 0;for (int i = 1; i <= n; i++){res += num_of_1(f[i]);}cout << res << endl;}}system("pause");return 0;
}
这篇关于笔试题0622的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!