如果n为偶数,则将它除以2, 如果n为奇数,则将它加1或者减1。 问对于一个给定的n,怎样才能用最少的步骤将它变到1。 例如: n= 61 n-- 60 n/2 30 n/2 15 n++ 16 n/2 8 n/2 4 n/2 2 n/2 1 2,算法 输入:一个32bit无符号数in. 输出:经过DIV/ADD/SUB变为1的步骤. 注: DIV--- /2操作...
int main(){ int i,j,num; int tmp,tmp2; int a[10]={1,2,3,4,5,6}; printf("input num\n"); scanf("%d",&num); if(num>=a[5]){ a[6]=num; }else{ for(i=0;i<6;i++){ if(a[i]>num){ tmp=a[i]; a[i]=num; for(j=i+1;j<7;j++){ tmp2=a[j]; a[j]=tmp...
C 数据结构与算法笔试面试题 c语言数据结构面试 1.输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 1. 2. 3. 4. 5. A: 递归方法逆序输出,栈方法逆序输出。 (任意实现一种既可) void PrintListUsingRecursicve(pListNod...
1,原题 (来自http://community.csdn.net/Expert/TopicView3.asp?id=5294802) Trilogy公司的笔试题: 如果n为偶数,则将它除以2, 如果n为奇数,则将它加1或者减1。 问对于一个给定的n,怎样才能用最少的步骤将它变到1。 例如: n= 61 n-- 60 n/2 30 ...