我不知道为什么很多问题很简单但是还是要写很长时间 。。。

原创 2012年03月25日 08:11:09

比如下面的问题,是求n个元素可以划分为多少个集合。

例如输入3,就一共有{1,2,3},{1,2}{3},{1}{2,3},{1}{2}{3},{1,3}{2}五种分割方式。


源码如下,改了很长时间,注释里面的是我之前的思路。

#include<stdio.h>
#include<stdlib.h>

#define CARRY 1
#define NOCARRY 0

int maxArr(int data[],int n)
{
	int i;
	int max = 0;
	
	for(i = 0;i < n;i++)
		if(max < data[i])
			max = data[i];
	return max;
}

void printArr(int data[],int n)
{
	int i;
	for(i = 0;i < n;i++)
		printf("%d",data[i]);
	printf("\n");	
}

int main()
{
	int n;
	int *data;
	int i,j;
	int pos;
	int flag = NOCARRY;
	int count = 0;
	
	scanf("%d",&n);
	data = (int *)malloc(sizeof(int) * n);
	for(i = 0;i < n;i++)
		data[i] = 1;
	pos = i;	
	while(maxArr(data,n) < n)
	{
		/*while(data[pos] >= maxArr(data,pos) + 1)
		{
			pos--;
			flag = CARRY;
		}
		data[pos]++,count++;
		if(flag == CARRY)
			for(j = pos;j < n;j++)
				data[j] = 1;
		flag = NOCARRY;
		pos = n - 1;
		*/
		
		while(data[pos] + 1 > maxArr(data,pos) + 1)
		{
			data[pos] = 1;
			pos--;
		}
		data[pos] ++;
		count++;
		//for(j = pos;j < n;j++)
		//	data[j] = 1;	
		pos = n - 1;
		
		//printArr(data,n);
	}

	printf("count == %d\n",count);
	return 0;
}

 

解决首次启动程序白屏时间过长的问题(针对Android Studio Instant Run)

转自郭霖大神: Android Studio中新加入的Instant Run功能,使得我们开发的效率可以大大地提升(详情见上一篇博客)。 问题重现 我初次发现这个问题是在升级了Android S...
  • lyankj
  • lyankj
  • 2016年07月07日 09:42
  • 3830

zzuli1210 东东的女朋友(二)(水)

Description 我们已经知道了,东东有很多的女朋友。每个女朋友都要东东陪她们,但是现在东东的女朋们每天也都需要上课,所以不可能一整天都有时间。现在的问题是,给出东东女朋友每一天的空闲时间...
  • zs120197
  • zs120197
  • 2016年10月28日 12:30
  • 1090

执行计划之误区,为什么COST很小,SQL却跑得很慢?

执行计划之误区,为什么COST很小,SQL却跑得很慢? 分类: Oracle Training 2014-07-31 18:07 480人阅读 评论(0) 收藏 举报 ora...
  • haiross
  • haiross
  • 2014年11月05日 14:15
  • 1582

纠结了很长时间的简单问题

1. 为什么在我加上按钮监听器后会一直报空指针异常,纠结了20分钟,找不到错误,最后发现了,不能先通过findViewById找到组件,应该先是setContentView加载组件,之后才能从布局管理...
  • qice675563721
  • qice675563721
  • 2014年03月28日 11:15
  • 500

因为网上的面试题很长时间都没更新了,有很多漏洞,所以我想总结一些面试题供大家参考(因为我也即将找工作了哈哈)!第一篇

第一,abstract 能否同时static ,能否同时native,能否synchronized? 答案:都不能(我自己在myeclipse都反复试过了)当前日期:2016/09/18. 下面是我通...
  • wlittlefive
  • wlittlefive
  • 2016年09月18日 19:27
  • 267

以前在学习Delphi的时候曾经花了很长时间编写这个东西,现在在项目中又重新用到了这个问题

  • 2009年08月22日 22:40
  • 103KB
  • 下载

进程调度与内存管理:这是我花了很长时间写的一个实验,界面非常美观,完成了进程调度的各个状态包括,就绪,运行,阻塞,挂起,并用画图来表示内存的分配情况,自我感觉还是不错的

  • 2010年05月29日 23:40
  • 535KB
  • 下载

Android的App第一次启动时白屏很长时间问题!

前两天我在红米手机调试程序时遇到很大的,就是在小米手机上调试后第一次启动后会等待很长世间白屏,我在网上百度了很多答案都不能解决,后来才发现是AndroidStudio2.1.1版本的问题,只要你将手机...
  • qq_34475058
  • qq_34475058
  • 2016年08月26日 10:11
  • 5310

数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间。Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕。如果你是个数据库管理员,你很有可能已经在某个阶段遇到上述情况。

人们一直在推动MySQL发展到它的极限。这里是100条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技...
  • fanyun_01
  • fanyun_01
  • 2016年03月18日 14:08
  • 1558

以前经常来这里,但是很少写博客.最近在做silverlight 项目.前几天被一个 类似.netmarquee的循环滚动的功能憋了很长时间,现在和大家分享下.

下面我来说下集合滚动.在silverlght中没有html那样简单一句话就能实现循环滚动.既:marquee. 原始的例:    要循环的信息      我查阅了大量的文档和帮助,我确定自...
  • langrenbuluo
  • langrenbuluo
  • 2011年11月22日 16:10
  • 748
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我不知道为什么很多问题很简单但是还是要写很长时间 。。。
举报原因:
原因补充:

(最多只允许输入30个字)