上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: 题目:输入一个整数n,求1到n这n个整数十进制表示中1出现的次数。举例:输入12,从1到12这些整数中包含1的数字有1, 10, 11,和12,1一共出现了5次。答:#include "stdafx.h"#include <iostream>using namespace std;int Count(int num){ int count = 0; while (num) { if (1 == num % 10) { count++; } num = num /10; } return ... 阅读全文
posted @ 2012-08-25 20:31 venow 阅读(381) 评论(2) 推荐(0) 编辑
摘要: 题目:输入一个整数,求该整数的二进制表达中有多少个1。举例:输入10,其二进制表示为1010,有两个1,因此输出2。答:#include "stdafx.h"#include <iostream>using namespace std;//只限于正数(输入负数会陷入死循环)int CountNonnegativeOneNumber(int n){ int count = 0; while (n) { if (n & 1) { count++; } n = n>>1; } return c... 阅读全文
posted @ 2012-08-25 20:11 venow 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法,并分析算法的时间复杂度。答:用一个函数f(n)来表示n级台阶总的跳法。 1、只有1个台阶,则f(1) = 1; 2、有2个台阶,则f(2) = 2; 3、当有n个台阶时,如果第一次跳1级,有f(n-1)种跳法,如果第一次跳2级,有f(n - 2)种跳法,即f(n) = f(n-1) + f(n-2)。即为Fibonacci序列。#include "stdafx.h"#include <iostream>using namespace std;//循环int TotalStep(int 阅读全文
posted @ 2012-08-25 19:47 venow 阅读(1095) 评论(0) 推荐(0) 编辑
摘要: 题目:定义字符串的左旋转操作,把字符串前面的若干个字符移动到字符串的尾部。要求:对长度为n的字符串操作的时间复杂度为O(n),辅助内存为O(1)。举例:把字符串abcdef左旋转2位得到字符串cdefab。答:#include "stdafx.h"#include <iostream>using namespace std;void swap(char *str, int begin, int end){ char ch; while (begin < end) { ch = *(str + begin); *(str + begin) = *(s... 阅读全文
posted @ 2012-08-25 13:18 venow 阅读(3177) 评论(2) 推荐(1) 编辑
摘要: 题目:在一个字符串中找到第一个只出现一次的字符。举例:输入abaccdeff,则输出b。答:假设字符占一个字节,则共有256不同的字符,开辟256空间,用查找表。#include "stdafx.h"#include <iostream>using namespace std;void FindFirstOneChar(char *str){ if (NULL == str) { return; } int count[256] = {0}; char *p = str; while (*p != '\0') { count... 阅读全文
posted @ 2012-08-25 10:27 venow 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内的字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和简单字母一样处理。举例:输入"I am a student.",则输出"student. a am I"。答:每个单词先自我翻转,然后整个句子翻转。#include "stdafx.h"#include <iostream>#include <string>using namespace std;/* 翻转 I am a student. --> student. a am I*/void 阅读全文
posted @ 2012-08-25 10:02 venow 阅读(279) 评论(0) 推荐(0) 编辑
摘要: #include "stdafx.h"#include <iostream>#include <fstream>#include <queue>using namespace std;typedef struct _Node{ int data; struct _Node *left; struct _Node *right; _Node() { data = 0; left = NULL; right = NULL; }}Node, *_PNode;//创建二叉树利用先序创建/* ... 阅读全文
posted @ 2012-08-24 22:15 venow 阅读(301) 评论(0) 推荐(0) 编辑
摘要: #include "stdafx.h"#include <iostream>#include <fstream>using namespace std;typedef struct _Node{ int data; struct _Node *left; struct _Node *right; bool isVisit; //后序遍历标志(非递归) _Node() { data = 0; left = NULL; right = NULL; isVisit = false; }}... 阅读全文
posted @ 2012-08-24 21:31 venow 阅读(1630) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。答:二叉树的后序非递归遍历#include "stdafx.h"#include <iostream>#include <fstream>#include <queue>using namespace std;typedef struct _Node{ int data; struct _Node *left; struct _Node *right; bool isVisit; //后序遍历标志(非递归) 阅读全文
posted @ 2012-08-24 21:01 venow 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};答:#include "stdafx.h"#include <iostream>#include <fstream>using namespace std;struct ListNode{ int m_nKey; ListNode* m_pNext;};//构造链表void CreateList(ListNode *&pHead){ fstr 阅读全文
posted @ 2012-08-23 23:16 venow 阅读(716) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页