• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小比丘
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 2 3 4 5 6 7 下一页
2012年11月14日
判断一个正整数是否可以由连续正整数求和而来
摘要: 58同城面试遇到的问题,判断一个正整数n是否可以由连续正整数求和而来。我没回答上来,面试官给了提示,回来自己想想,觉得有两种方法:模拟法:用一个在数轴上的滑动窗(即一个正整数区间),来模拟求解过程。具体来说,如果滑动窗内整数的和小于n,则滑动窗右边界向右移动,如果滑动窗内整数的和大于n,则滑动窗左边界向右移动,如果滑动窗内整数的和等于n,则n可以由滑动窗内的整数求和表示,程序终止。数学分析法:可以证明(证明在本文最后),如果n可以表示为:n=(2*m+1)*2k,m, k>=0;则m>0时,n可以由连续正整数求和而来,m=0时,n不可以由连续正整数求和而来。实际上,正整数中,只有2 阅读全文
posted @ 2012-11-14 16:47 小比丘 阅读(2188) 评论(0) 推荐(1)
计算用字符串表示的整数四则运算的值
摘要: 昨天晚上写完《计算用字符串表示的个位数四则运算的值(栈)》,自己给自己留了个问题?即,怎样计算用字符串表示的整数四则运算的值。这里增加了两个难度,整数的位数不再是一位,而且表达式中可以含括号。下面给出代码:View Code 1 #include <iostream> 2 using namespace std; 3 4 const int MAX=100; 5 6 typedef struct node * pointer; 7 typedef struct node{ 8 bool isNumber; 9 int value; 10 poin... 阅读全文
posted @ 2012-11-14 00:30 小比丘 阅读(715) 评论(0) 推荐(0)
2012年11月13日
计算用字符串表示的个位数四则运算的值(栈)
摘要: 比如eval("1+4*3/2-5")=2View Code 1 #include <iostream> 2 using namespace std; 3 4 int calculate(char *expStr) 5 { 6 int stack[100]; 7 int top=-1; 8 stack[++top]=expStr[0]-'0'; 9 for(int i=1;i<strlen(expStr);i+=2)10 if(expStr[i]=='*')11 stack[top]=stack[top]*(expSt... 阅读全文
posted @ 2012-11-13 00:35 小比丘 阅读(554) 评论(0) 推荐(0)
2012年11月12日
Joseph问题(循环链表)
摘要: 循环链表最著名的应用就是Joseph问题:Josephu问题:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人找到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏。 如何用循环链表来求解Josephu问题?View Code 1 . 阅读全文
posted @ 2012-11-12 19:17 小比丘 阅读(2258) 评论(0) 推荐(0)
一天中,时针和分针相遇多少次,时分秒针相遇多少次?
摘要: 1 #include <stdio.h> 2 3 //设置时分秒针的速度 4 //时针720秒走一格,分针60秒走一格,秒针1秒走一格,钟表一圈共60格 5 //因此时针速度为1/720,分针速度为1/60,但在程序中为了便于实现,全部扩大720倍 6 //所以得出如下宏定义 7 int main() 8 { 9 int vh=1; //时针速度10 int vm=12; //分针速度11 int vs=720; //秒针速度12 int circle=12*3600;13 14 int n=0; 15 int t=... 阅读全文
posted @ 2012-11-12 15:59 小比丘 阅读(4563) 评论(0) 推荐(0)
2012年11月8日
C/C++计算阶乘n!末尾所含0的个数
摘要: #include <iostream>using namespace std;int SumFactZeros(const int n){if(n<0) exit(0); if(n<5) return 0; int counter=0; for(int i=5;i<=n;i++){ int flag=i; while(flag%5==0) { flag/=5; counter++; } } return counter;}int SumFactZeros_recursion(const int n){ if(n<0) exit(0); if(n<5) 阅读全文
posted @ 2012-11-08 21:04 小比丘 阅读(2468) 评论(0) 推荐(0)
2012年7月25日
螺旋数组
摘要: 写在前面:依然是在《程序员面试宝典》看到的例题:输入N,用C++生成N*N的螺旋数组,并打印出来。书上给了实现代码,http://www.cnblogs.com/lovell-liu/archive/2011/09/19/2181598.html也有很好的实现代码,当然我自己也实现了。/*螺旋数组是一个从中心螺旋形扩展的数组,如8*8的螺旋数组: 49 50 51 52 53 54 55 56 48 25 26 27 28 29 30 57 47 24 9 10 11... 阅读全文
posted @ 2012-07-25 17:25 小比丘 阅读(4170) 评论(0) 推荐(0)
2012年7月24日
输入范围内的整数(C++)
摘要: #include <iostream> using namespace std; int main() { int N; cout<<"请输入1~100之间的整数N:"; bool input_again=false; do { cin.clear(); cin.sync(); cin>>N; if(!cin) //输入整数不成功 { cout<<"N必须是1~100之间的整数,请重新输入N:"; ... 阅读全文
posted @ 2012-07-24 21:27 小比丘 阅读(1026) 评论(0) 推荐(0)
zigzag数组
摘要: 写在前面:在《程序员面试宝典》看到的例题:输入N,用C++生成N*N的zigzag数组,并打印出来。书上给了实现代码,http://www.cnblogs.com/lovell-liu/archive/2011/09/19/2181598.html也有很好的实现代码,当然我自己也实现了。先贴代码/*zigzag数组是一个“之”字形排列的数组,如8*8的zigzag数组: 0 1 5 6 14 15 27 28 2 4 7 13 16 26 29 42 3 8 1... 阅读全文
posted @ 2012-07-24 20:45 小比丘 阅读(4752) 评论(1) 推荐(2)
查看C/C++程序执行结果的方法------system("pause"),getchar(),cin.get()
摘要: 使用一些IDE(Visual C++,Dev C++等等)编写C/C++程序,经常会看到程序的执行结果一闪而过,为了查看程序的执行结果,可以在代码的最后加上system("pause"); 这是比较流行的做法,但是看看这篇文章吧 Things to Avoid in C/C++ -- system("pause") 这篇文章不推荐大家使用"system("pause"); ",因为: 1. 不可移植。只适合DOS或Windows,但是不适合Linux等 2. 耗费系统资源。调用系统命令system(),去做&quo 阅读全文
posted @ 2012-07-24 20:06 小比丘 阅读(3177) 评论(1) 推荐(1)
上一页 1 2 3 4 5 6 7 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3