我不知道为什么很多问题很简单但是还是要写很长时间 。。。
来源:互联网 发布:w8卸载软件 编辑:程序博客网 时间:2024/05/14 13:46
比如下面的问题,是求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 0int 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;}
- 我不知道为什么很多问题很简单但是还是要写很长时间 。。。
- 我不知道为什么
- 我为什么不写技术上的问题
- 不知道是mfc的问题还是我用法不对
- 有很多事情,我不知道怎么办。
- 我学习Android两年了。但是我TMD真心不知道Service到底有啥用【很严肃的问题】
- myelipcse 不编译 的问题2: 我也不知道为什么
- 用springmail写发送邮件服务和一个困扰我很久但是很简单的问题
- 这段代码有问题,但是我不知道是什么问题。。。
- 还是不知道写啥,头疼
- 好吧。。虽然A题能力不行。但是我还是有想法的。。QAQ不知道可不可行。
- 我用VC6写了个程序转成了VS2008编译成功了,但是界面还是VC6的样子,我想把界面也转成VS2008的风格,不知道怎么弄
- 参考资料写的linux块设备驱动,可以nmod和mkfs.ext3,但是不知道为什么加载不了
- 很多人问我你为什么不谈恋爱(写的很好,发人深省,适合每个大学生看)
- 很多不知道的
- 很多都不知道
- 不知道那根神经错乱,我要写博客了!!
- 不知道为什么,我就是不想放弃!
- 面试题3
- cuug oracle DBA课程目录及简介
- 从ArcGIS Online谈起
- 解决问题的一些心得
- HTTP响应头不缓存
- 我不知道为什么很多问题很简单但是还是要写很长时间 。。。
- "can't load apple.laf.AquaLookAndFeel" (Ant in Eclipse can't find it)
- Ubuntu开机声音管理
- 后乔布斯时代 世界IT业谁主沉浮?
- 读取配置文件方式
- CentOS 5.5硬盘分区方案
- centos 5.5 安装mysql、nginx环境初始化脚本
- zoj 1730 Crazy Tea Party
- 详解Cocos2d CCLayer中Touch使用方法