1.求第n个斐波那契数(非递归实现)。 2.一个数组中只有两个数字是出现一次,其他所有数字都出现 了两次。 找出这两个数字,编程实现。
来源:互联网 发布:mysql community 编辑:程序博客网 时间:2024/06/05 03:41
1.求第n个斐波那契数(非递归实现)。
2.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
找出这两个数字,编程实现。
//100010010
代码1:
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
这个数列从第3项开始,每一项都等于前两项之和
#include <stdio.h>
#include <assert.h>
#include <windows.h>
#pragma warning(disable:4996)
long rfib(int n)
{
if ( n <= 2 )
#include <assert.h>
#include <windows.h>
#pragma warning(disable:4996)
long rfib(int n)
{
if ( n <= 2 )
{
return 1;
}
return fib(n-1) + fib(n-2);
}
long fib(int n)
{
long pren = 1;
long prenn = 1;
int i = 3;
long data = 1;
for (; i <= n; i++){
data = pren + prenn;
prenn = pren;
pren = data;
}
return data;
}
int main()
{
printf("Please Enter: ");
int n = 0;
scanf("%d", &n);
//long data = rfib(n);
printf("%u\n", fib(n));
system("pause");
return 0;
return 1;
}
return fib(n-1) + fib(n-2);
}
long fib(int n)
{
long pren = 1;
long prenn = 1;
int i = 3;
long data = 1;
for (; i <= n; i++){
data = pren + prenn;
prenn = pren;
pren = data;
}
return data;
}
int main()
{
printf("Please Enter: ");
int n = 0;
scanf("%d", &n);
//long data = rfib(n);
printf("%u\n", fib(n));
system("pause");
return 0;
}
代码2: 按照之前的一个独立数据,现在2个,可以对其进行分类处理
#include <stdio.h>
#include <assert.h>
#include <windows.h>
void find_data(int *arr, int len, int *data1, int *data2)
{
assert(arr && len > 0);
assert(data1);
assert(data2);
int tmp = arr[0];
int i = 1;
for (; i < len; i++){
tmp ^= arr[i];
}
//tmp is data1 and data2 ^ result!
int count = 0;
int flag = 0x1;
while (tmp){
flag <<= count;
if ( tmp & flag ){
break;
}
}
*data1 = *data2 = 0;
for (i = 0; i < len; i++ ){
if ( arr[i] & flag ){//data1
*data1 ^= arr[i];
}
else{//data2
*data2 ^= arr[i];
}
}
}
int main()
{
int arr[] = {1,1, 3,3,4,4,5,5,6,6, 9,19, 19,8, 7, 7};
int len = sizeof(arr) / sizeof(arr[0]);
int data1, data2;
find_data(arr, len, &data1, &data2);
printf("diff data : %d, %d\n", data1, data2);
system("pause");
return 0;
#include <assert.h>
#include <windows.h>
void find_data(int *arr, int len, int *data1, int *data2)
{
assert(arr && len > 0);
assert(data1);
assert(data2);
int tmp = arr[0];
int i = 1;
for (; i < len; i++){
tmp ^= arr[i];
}
//tmp is data1 and data2 ^ result!
int count = 0;
int flag = 0x1;
while (tmp){
flag <<= count;
if ( tmp & flag ){
break;
}
}
*data1 = *data2 = 0;
for (i = 0; i < len; i++ ){
if ( arr[i] & flag ){//data1
*data1 ^= arr[i];
}
else{//data2
*data2 ^= arr[i];
}
}
}
int main()
{
int arr[] = {1,1, 3,3,4,4,5,5,6,6, 9,19, 19,8, 7, 7};
int len = sizeof(arr) / sizeof(arr[0]);
int data1, data2;
find_data(arr, len, &data1, &data2);
printf("diff data : %d, %d\n", data1, data2);
system("pause");
return 0;
}
0 0
- 1.求第n个斐波那契数(非递归实现)。 2.一个数组中只有两个数字是出现一次,其他所有数字都出现 了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- .一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- C语言- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次
- 集合
- Tomcat 7 参数性能调优
- CSDN Markdown 编辑器使用详细
- Redis整合Spring实现缓存调度
- Linux下的SVN服务器搭建
- 1.求第n个斐波那契数(非递归实现)。 2.一个数组中只有两个数字是出现一次,其他所有数字都出现 了两次。 找出这两个数字,编程实现。
- UIWidget是所有UI组件的抽象基类,作为基类当然定义了必须的成员变量和函数,接触过MFC或其他UI组件开发,想必都知道有一堆参数设置,尤其是Visual Studio的可视化界面,
- 《Android攻防实战》——实践App安全
- Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ)
- Android游戏编程之GameView1
- Java与Unix时间戳的相互转换
- Js 删掉所有的html标签
- 【Java集合类源码分析】HashMap源码分析一
- ABAP增强总结