出现的一些好的笔试题目
2010-10-27 20:34
267 查看
之前在腾讯笔试上就出现了一次下面提到的这道题,今天中关村某公司的面试题目又出现这一题目~
由于是编程的题目,具体说是程序填空题,因为某些原因程序没有记录下来,但是又非常想知道这道题的解法
望高手给予帮助阿~谢谢
对一个整数,可以分解成某些整数之和,例如
4=4
4=3+1
4=2+2
4=1+1+1+1
编程实现,采用递归或者非递归方式来实现!
/******************************
* *
* haison根据网上程序修改 *
* --2007.10.17 *
* *
******************************/
#include<stdio.h>
#define N 3
#define MAX 100
/******************************************
*a[]——存储分解出来的和数
*a[k]——第k步分解出来的和数。
*r[k]——存储分解出和数a[k]后,还未分解的余数。
*******************************************/
int a[MAX],r[MAX];
/*分解函数声明*/
void detachInt(int value);
int main()
{
int arr
={3,4,5}; /*欲分解的数*/
for(int i=0;i<N;i++)
{
printf("Begin to detach %d as follows:n",arr);
detachInt(arr);
printf("End detach %dnn",arr);
}
return 0;
}
/*分解函数实现*/
void detachInt(int value)
{
int k=0,i;
a[0]=r[0]=value;
while(1)
{
if(r[k]==0)
{
printf("%d=%d",a[0],a[1]);
for(i=2;i<=k;i++)
printf("+%d",a);
printf("n");
while(k>0 && a[k]==1)
k--; /*回溯*/
if(k==0)
break;
a[k]--;
r[k]++;
}
else
{
a[k+1]=r[k]<a[k]?r[k]:a[k];
r[k+1]=r[k]-a[k+1];
k++;
}
}
}
由于是编程的题目,具体说是程序填空题,因为某些原因程序没有记录下来,但是又非常想知道这道题的解法
望高手给予帮助阿~谢谢
对一个整数,可以分解成某些整数之和,例如
4=4
4=3+1
4=2+2
4=1+1+1+1
编程实现,采用递归或者非递归方式来实现!
/******************************
* *
* haison根据网上程序修改 *
* --2007.10.17 *
* *
******************************/
#include<stdio.h>
#define N 3
#define MAX 100
/******************************************
*a[]——存储分解出来的和数
*a[k]——第k步分解出来的和数。
*r[k]——存储分解出和数a[k]后,还未分解的余数。
*******************************************/
int a[MAX],r[MAX];
/*分解函数声明*/
void detachInt(int value);
int main()
{
int arr
={3,4,5}; /*欲分解的数*/
for(int i=0;i<N;i++)
{
printf("Begin to detach %d as follows:n",arr);
detachInt(arr);
printf("End detach %dnn",arr);
}
return 0;
}
/*分解函数实现*/
void detachInt(int value)
{
int k=0,i;
a[0]=r[0]=value;
while(1)
{
if(r[k]==0)
{
printf("%d=%d",a[0],a[1]);
for(i=2;i<=k;i++)
printf("+%d",a);
printf("n");
while(k>0 && a[k]==1)
k--; /*回溯*/
if(k==0)
break;
a[k]--;
r[k]++;
}
else
{
a[k+1]=r[k]<a[k]?r[k]:a[k];
r[k+1]=r[k]-a[k+1];
k++;
}
}
}
相关文章推荐
- 由一些公司的笔试题目想到的---模拟电路,数字电路最基本应该知道哪些
- 笔试的一些题目
- 笔试的一些题目
- 9-30做的一些笔试面试题目总结
- 【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。
- 位运算符可能会出现的笔试题目
- 一些公司的2016年校招C/C++开发岗笔试题目(二)
- 一些基础的Oracle DBA笔试题和面试题目
- 二叉树的一些笔试面试题目
- 一些常见笔试题目---堆、栈的区别,进程、线程等
- 一些笔试题目
- 最近做的一些比较基础的笔试面试题目
- ACM题目推荐(刘汝佳书上出现的一些题目)
- 笔试的一些题目 .
- 一些公司的2016年校招C/C++开发岗笔试题目(三)
- 一些笔试中会出现的题目
- ACM题目推荐(刘汝佳书上出现的一些题目)
- ACM题目推荐(刘汝佳书上出现的一些题目)
- 一些基础的Oracle DBA笔试题和面试题目
- ACM题目推荐(刘汝佳书上出现的一些题目)[非原创]