亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? intpart.cpp

?? 采用非遞歸方法實(shí)現(xiàn)的整數(shù)分拆程序
?? CPP
字號(hào):
// intpart.cpp : Defines the entry point for the console application.
//
// ***************************************************************
//  intpart   version:  1.0   ? date: 02/11/2009
//  -------------------------------------------------------------
//  整數(shù)分解的非遞歸版本。使用了兩個(gè)棧,一個(gè)保存分解成的數(shù)字(從大到小),
//  另一個(gè)(依次)保存各數(shù)字出現(xiàn)的次數(shù)。  
//  -------------------------------------------------------------
//  Copyright (C) 2009 - All Rights Reserved
// ***************************************************************
// 
// ***************************************************************
#include "stdafx.h"

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

#define MAXSIZE		50 //控制堆棧的最大高度
typedef unsigned int UINT;
char print=0;	  //控制是否打印結(jié)果的標(biāo)記變量。由鍵盤輸入值控制

UINT IntPart(UINT n);
int main()
{
	UINT n;
	int ch;
	printf("=========正整數(shù)分解程序(非遞歸版)===\n");
	printf("輸入正整數(shù)n,本程序?qū)阉纸獬刹籠n大于它的數(shù)字的和的形式\n");
	printf("================================\n\n");
	//輸入n
	printf("input n(>0): ");
	scanf("%ud",&n);
	if(n<=0)
		exit(-1);
	
	printf("要打印分拆結(jié)果嗎?[y|n]");
	ch=getche();//此標(biāo)志用來控制是否顯示分割結(jié)果。主要是當(dāng)n比較大時(shí)用。
	if(ch=='y') print=1;
	else print = 0;
	printf("\nPlease wait.....\n");
	clock_t begin_time, end_time;
	begin_time= clock();

	if(print)
		printf("\n%-2d=\n",n);

	IntPart(n);

	end_time  = clock();
	printf("\nTime elapsed:%.3lf (ms)\n",(double)(end_time-begin_time));
	return 0;
}
/*******************************************************************
 函數(shù)IntPart把輸入整數(shù)n進(jìn)行分拆,并根據(jù)全局變量print的值確定是否打印
 分解結(jié)果,返回值為分拆的種數(shù)。
 使用兩個(gè)數(shù)組型堆棧的目的是減小存儲(chǔ)量。可以跟只用一個(gè)堆棧的方法對(duì)比
********************************************************************/
//************************************
// Method:    IntPart
// FullName:  IntPart
// Access:    public 
// Returns:   int
// Qualifier: 
// Parameter: UINT n
//************************************
UINT IntPart(UINT n)
{
	UINT partition[MAXSIZE+1]={0}, repeat[MAXSIZE+1]={0}; //第一個(gè)存分割的數(shù)字,第二個(gè)存該數(shù)字出現(xiàn)的次數(shù)

	//top表示棧頂位置,next表示比棧頂數(shù)小的下一個(gè)數(shù),sum是n減去棧中元素和之后的差
	UINT top=1,next=n,sum=0,cnt=1; //棧從1開始增長(zhǎng)
	int i,j,k;

	//初始化,將n壓棧
    partition[top]=n,repeat[top]++;
	if(print)     printf("%3d \n", n); //打印控制。后面打印的地方同此。

	//程序主體
	do
	{
		next = partition[top]-1;


		//把棧頂元素彈出一個(gè)出去,并調(diào)整之后棧頂?shù)奈恢谩W⒁猓?是不會(huì)壓入棧中去的
		sum	+= partition[top];
		if(--repeat[top]==0) //要判斷棧頂元素是不是只出現(xiàn)一次,彈出去就沒有了?
			if(next==1)
				top--;

		//進(jìn)而把sum分成next的和,并壓棧
		if(next==1)				//因?yàn)?不會(huì)壓棧,所以此時(shí)便可打印一個(gè)結(jié)果
		{
			if(print)
			{
				for(i=1;i<=top;i++)
					for(j=1;j<=repeat[i];j++)
						printf("%3d ",partition[i]);

				for(i=1;i<=sum;i++)
					printf("%3d ", next);
				printf("\n");
			}
			cnt++;
		}else//next>1,把sum中的next壓棧,壓棧次數(shù)放到repeat[top]中,直至sum剩下的值小于next
		{
			if(repeat[top]) top++;

			partition[top] = next;
			while(sum>=next)
			{
				repeat[top]++;
				sum-=partition[top];
			}
			if(print)
			{
				for(i=1;i<=top;i++)
					for(j=1;j<=repeat[i];j++)
						printf("%3d ",partition[i]);
				if(sum) printf("%3d", sum);
				printf("\n");
			}
			cnt++;
			if(sum>1)//壓完棧之后,如果sum中的值大于1,再把該值也壓棧,并減小sum
			{
				top++;
				partition[top]=sum;
				repeat[top]++;
				sum-=partition[top];
			}
		}
	}while(top>0);
	printf("\n\n正整數(shù)%d有總共%d種分割方法\n",n,cnt);
	return cnt;
}

/*如n=7,則結(jié)果為:
7 =
  7
  6   1
  5   2
  5   1   1
  4   3
  4   2   1
  4   1   1   1
  3   3   1
  3   2   2
  3   2   1   1
  3   1   1   1   1
  2   2   2   1
  2   2   1   1   1
  2   1   1   1   1   1
  1   1   1   1   1   1   1
先置棧頂top=1,把n放入棧中。sum=0,repeat[1]=1(表示n出現(xiàn)一次,后面不再解釋)。

 (1)next=棧頂當(dāng)前值-1;
 (2)彈出一個(gè)棧頂值來,加到sum上去。如果棧頂值只重復(fù)一次,且next==1,則棧頂位置下降一。
 (3)把sum分解成最大值為next 的若干數(shù)字之和。
    (i) 若next為1,則打印出棧內(nèi)的數(shù)字,并打印sum個(gè)1,完成一種分割方法。
	(ii)若next>1,把sum中的next壓棧。從sum中減去next作為新的sum。如此循環(huán)直至sum<next。
	于是得到一種分割。打印出結(jié)果。sum若大于1,也要壓入棧中。
 (4)如果棧頂大于0,則到(1)

其實(shí)質(zhì)是:棧頂以下的元素是保持不動(dòng)的,而棧頂+sum構(gòu)成的和被分解成最大值為棧頂元素值的
          分拆。

給出一個(gè)n,畫出堆棧的變化情況,觀察sum,top,next的變化情況可以加深對(duì)算法的理解。
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费偷拍视频| 色综合av在线| 欧美va亚洲va国产综合| 美国三级日本三级久久99| 欧美一区二区三区思思人| 看电视剧不卡顿的网站| 久久久久亚洲蜜桃| 99久久99精品久久久久久 | av电影在线观看完整版一区二区| 国产精品免费视频一区| 色先锋aa成人| 麻豆精品一区二区综合av| 久久久久成人黄色影片| 色综合咪咪久久| 无吗不卡中文字幕| 26uuu亚洲| 91在线视频18| 日韩成人av影视| 国产欧美日韩综合精品一区二区| 成人激情动漫在线观看| 亚洲综合网站在线观看| 欧美mv日韩mv亚洲| 不卡一区二区三区四区| 亚洲mv在线观看| 国产午夜精品理论片a级大结局| 99免费精品在线观看| 亚洲电影一区二区三区| 久久综合成人精品亚洲另类欧美| 成人aa视频在线观看| 日韩精品电影在线观看| 日本一区二区成人| 欧美精品日韩综合在线| 不卡的av电影| 久久成人免费电影| 亚洲欧美视频在线观看视频| 欧美不卡一区二区三区| 色999日韩国产欧美一区二区| 美女久久久精品| 亚洲综合在线观看视频| 久久午夜电影网| 欧美日高清视频| 99久久精品免费看| 极品少妇一区二区| 一区二区三区高清在线| 国产亚洲欧美色| 在线播放国产精品二区一二区四区 | 韩国精品一区二区| 一区二区三区波多野结衣在线观看| 精品人在线二区三区| 欧洲精品中文字幕| 成人性色生活片| 久久国产精品72免费观看| 亚洲香肠在线观看| 一色屋精品亚洲香蕉网站| www亚洲一区| 69堂国产成人免费视频| 欧美丝袜丝交足nylons| 95精品视频在线| 不卡视频在线观看| 国产精品88av| 韩国理伦片一区二区三区在线播放| 肉肉av福利一精品导航| 亚洲一二三四在线观看| 亚洲欧美日韩中文播放| 国产精品全国免费观看高清| 久久先锋资源网| 久久综合色婷婷| 精品国产网站在线观看| 欧美大片在线观看| 91麻豆精品国产91久久久久久| 欧美性猛交xxxxxxxx| 色成人在线视频| 欧美在线视频你懂得| 欧美在线播放高清精品| 色先锋aa成人| 欧美午夜电影网| 欧美伦理电影网| 6080yy午夜一二三区久久| 欧美日韩国产精品自在自线| 欧美日韩精品高清| 91精品国产一区二区| 日韩欧美国产麻豆| 精品国产乱码久久久久久久久| 精品理论电影在线观看| 久久婷婷国产综合国色天香| 久久久久国产精品人| 精品久久免费看| 国产日韩亚洲欧美综合| 国产农村妇女毛片精品久久麻豆 | 欧美一区二区三区免费视频 | 中文字幕一区二区三区乱码在线| 国产精品不卡一区| 一区二区在线电影| 亚洲bt欧美bt精品| 玖玖九九国产精品| 国产91精品一区二区麻豆网站 | 91国偷自产一区二区三区观看 | 日韩欧美国产一区二区三区| 精品国产1区2区3区| 国产精品麻豆视频| 亚洲激情一二三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久网站热最新地址| 中文字幕第一页久久| 一区二区三区视频在线看| 日韩成人午夜电影| 国产夫妻精品视频| 在线观看视频91| 亚洲精品一区二区三区精华液| 欧美经典一区二区| 亚洲一二三四在线| 九九**精品视频免费播放| 欧美mv日韩mv国产| 欧美国产精品久久| 亚洲国产人成综合网站| 免费视频最近日韩| 久久99久久精品| 91热门视频在线观看| 日韩一区二区在线免费观看| 欧美韩国日本不卡| 午夜精品一区二区三区三上悠亚| 天堂蜜桃91精品| 国产成人av资源| 欧美丰满少妇xxxxx高潮对白| 欧美极品美女视频| 奇米四色…亚洲| 欧美专区日韩专区| 国产午夜亚洲精品羞羞网站| 亚洲午夜久久久久久久久久久| 国产一区二区三区免费| 欧美三级中文字幕在线观看| 欧美激情一区二区三区全黄| 日本中文字幕一区| 一本色道**综合亚洲精品蜜桃冫| 日韩女优av电影在线观看| 一区二区三区资源| 成人精品视频.| 精品国产成人系列| 午夜精品久久久久久久99樱桃| 东方aⅴ免费观看久久av| 日韩欧美在线网站| 亚洲成a人在线观看| 91玉足脚交白嫩脚丫在线播放| 精品少妇一区二区三区日产乱码| 亚洲成人激情自拍| 91在线国产福利| 国产欧美日韩视频在线观看| 免费成人av在线播放| 欧美亚洲另类激情小说| 国产精品理论在线观看| 国产精品1区2区3区在线观看| 欧美巨大另类极品videosbest | 久久精品国产免费| 欧美日韩三级视频| 亚洲欧美日韩国产成人精品影院| 国产高清无密码一区二区三区| 制服丝袜成人动漫| 午夜激情久久久| 91成人网在线| 一区二区三区产品免费精品久久75 | 精品av综合导航| 蜜桃久久久久久久| 91麻豆精品久久久久蜜臀| 亚洲第一成年网| 欧美三级乱人伦电影| 亚洲精品国产视频| 在线观看免费一区| 亚洲在线视频一区| 欧美日韩国产123区| 午夜电影网一区| 日韩一区二区视频| 麻豆精品蜜桃视频网站| 精品日韩成人av| 国产中文一区二区三区| 久久久久久影视| 丰满放荡岳乱妇91ww| 国产精品久久久久久久久久免费看 | 国产91精品欧美| 国产精品网站导航| 色婷婷综合视频在线观看| 亚洲综合图片区| 91精品久久久久久蜜臀| 美腿丝袜亚洲一区| 久久奇米777| heyzo一本久久综合| 亚洲一二三四久久| 91精品国产综合久久国产大片| 久久99精品国产91久久来源| 久久久久88色偷偷免费| 成人免费视频app| 一区二区三区在线观看网站| 在线播放欧美女士性生活| 另类专区欧美蜜桃臀第一页| 国产欧美久久久精品影院| av一区二区不卡| 午夜视频一区在线观看| 精品福利在线导航| 91在线码无精品| 日本不卡一区二区| 亚洲国产精品成人久久综合一区|