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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? list_str_mul.c

?? 2個1000位大整數相乘
?? C
字號:
//把1000位大整數分段成為數組,然后分段相乘,存在鏈表當中。最后累加合并。#include <stdio.h>#include <stdlib.h>#include <string.h>#define BATCH 8char *str_a = "111111111111111111";char *str_b = "11111111111111111111";struct __node_t{	int value;	int exp;	struct __node_t *next;};typedef struct __node_t node_t;//顯示節點值int show_node (node_t *ptail){	if (ptail == NULL)	{		printf ("%s.%d\n", __FILE__, __LINE__);		return -1;	}	printf ("(v: %d, e: %d)", ptail->value, ptail->exp);	return 0;}//顯示鏈表內容int show_list (node_t *ptail){	if (ptail == NULL)	{		printf ("%s.%d\n", __FILE__, __LINE__);		return -1;	}	printf ("-----\n");	node_t *p = ptail;	while (p)	{		show_node (p);		printf (" -> ");		p = p->next;	}	printf ("NULL\n");	return 0;}//合并鏈表int combine_list (node_t *tail){	//get len	if (tail == NULL)	{		printf ("%s.%d\n", __FILE__, __LINE__);	}	int len;	node_t *p = tail;	while (p->next != NULL)		p = p->next;	len = 2 * (p->exp);	char *pres = (char *)malloc (sizeof (len + 1));	memset (pres, '0', len);	pres[len] = '\0';		p = tail;	while (p)	{		plus_res(&pres, len, p);		p = p->next;	}		printf ("result= %s\n", pres);		return 0;}//鏈表中的結果相加int plus_res (char **ppres, int len, node_t *p){	int acc = 0;	int i;	int index = len - p->exp - 1; 	int value = p->value;	int tmp;	for (i = 0; i < 4; i++)	{		tmp = *(*ppres + index - i) - '0' + value % 10 + acc;		*(*ppres + index - i) = tmp % 10 + '0';		acc = tmp / 10;		value = value / 10;	}	while (acc)	{		tmp = *(*ppres + index - i) - '0' + acc;		*(*ppres + index - i) += tmp % 10 + '0';		acc = tmp / 10;		i++;	}		return 0;}//鏈表增加節點int add_value (node_t **pptail, int value, int exp){	if (*pptail == NULL)	{			if (value < 10000)		{			*pptail = (node_t *)malloc (sizeof (node_t));			(*pptail)->value = value;			(*pptail)->exp = exp;			(*pptail)->next = 0;			return 0;		}		if (value >= 10000)		{			*pptail = (node_t *)malloc (sizeof (node_t));			(*pptail)->value = value % 10000;			(*pptail)->exp = exp;			(*pptail)->next = (node_t *)malloc (sizeof (node_t));			(*pptail)->next->value = value / 10000;			(*pptail)->next->exp = exp + 4;			(*pptail)->next->next = 0;			return 0;		}	}	node_t *p = *pptail;	while (1)	{		if (p->exp == exp)		{			while (p->next != NULL)			{				if (p->next->exp != exp)					break;				p = p->next;			}			p->value += value;			if (p->value > 9999)			{				int tmp = p->value / 10000;				p->value = p->value % 10000;				node_t *new_node = (node_t *)malloc (sizeof (node_t));				if (new_node == NULL)				{					printf ("%s.%d\n", __FILE__, __LINE__);					return -1;				}				new_node->value = tmp;				new_node->exp = p->exp + 4;				new_node->next = p->next;				p->next = new_node;			}			return 0;		}		if (p->exp < exp)		{			if (p->next == NULL)			{				node_t *tmp = (node_t *)malloc (sizeof (node_t));				tmp->value = value;				tmp->exp = exp;				tmp->next = 0;				p->next = tmp;				return 0;			}			if (p->next->exp > exp)			{				node_t *tmp = (node_t *)malloc (sizeof (node_t));				tmp->value = value;				tmp->exp = exp;				tmp->next = p->next;				p->next = tmp;				return 0;			}		}		p = p->next;	}	return 0;}//1000位大整數變成鏈表int tran_list (char *src, node_t **pptail){	int len = strlen (src);	int i;	int value;	int exp;	for (i = len - 4; i >= 0; i -= 4)	{		value = (src[i] - '0') * 1000   + (src[i + 1] - '0') * 100;		value = (src[i + 2] - '0') * 10 + (src[i + 3] - '0') + value;		add_value (pptail, value, len - i - 4);		//show_list (*pptail);	}	if (i < 0)	{		int pad = len % 4;		if (pad != 0)		{			exp = (len / 4) * 4;			if (pad == 1)				value = src[0] - '0';			if (pad == 2)				value = (src[0] - '0') * 10 + (src[1] - '0');			if (pad == 3)				value = (src[0] - '0') * 100 + (src[1] - '0') * 10 + (src[2] - '0');			add_value (pptail, value, exp);			//show_list (*pptail);		}		}	return 0;}//大整數和單個數字相乘int single_mul (char *src, char ch){	int len = strlen (src);	int row = len / BATCH + 1;	int res_len = row * BATCH;	int pad_len = res_len - len;	char (*res)[BATCH + 1];	res = (char (*)[BATCH + 1])malloc (row * (BATCH + 1));	memset (res, 0, res_len);	int i;	for (i = 0; i< pad_len; i++)		res[0][i] = '0';	//memcpy ((char *)res + pad_len , src, len);	int j;	for (i = pad_len, j = 0; j < len; i++, j++)	{		if (i % (BATCH + 1) == BATCH)			i++;		*(*res + i) = *(src + j);	}	for (i = 0; i < row; i++)		printf ("cp res= %s\n", res[i]);	printf ("\n");	int acc = 0;	int value;	for (i = row - 1; i >= 0; i--)	{		value = atoi (res[i]);		value = value * (int)(ch - '0') + acc;		acc = value / 100000000;		value = value % 100000000;		int j;		for (j = BATCH - 1; j >= 0; j--)		{			res[i][j] = value % 10 + '0';			value = value / 10;		}	}	for (i = 0; i < row; i++)		printf ("mul res= %s\n", res[i]);	printf ("\n");	return 0;}//2個大整數變成2個鏈表后相乘(存在小問題^_^)int list_mul (node_t *dst, node_t *src, node_t **res){	if ((dst == NULL) || (src == NULL))	{		printf ("%s.%d\n", __FILE__, __LINE__);		exit (1);	}	node_t *dp;	node_t *sp = src;	printf ("src: ");	//show_list (src);	int value;	while (sp)	{		dp = dst;		while (dp)		{			value = (dp->value) * (sp->value);			add_value (res, value, dp->exp + sp->exp);			//show_list (*res);			dp = dp->next;		}		sp = sp->next;				//show_list(*res);	}	return 0;}//2個字符串數組相加int add (char *dst, char *src, char *res){	int dlen = strlen (dst);	int slen = strlen (src);		int alen;	int blen;	char *a;	char *b;	if (dlen > slen)	{		alen = dlen;		blen = slen;		a = dst;		b = src;	}	else	{		alen = slen;		blen = dlen;		a = src;		b = dst;	}	res = (char *)malloc (sizeof (alen + 2));	memset (res, 0, alen + 2);	int i;	int temp;	int acc = 0;	for (i = blen - 1; i >= 0; i--)	{		temp = a[i + alen - blen] + b[i] - '0' - '0' + acc; 		res [i + alen - blen + 1] = temp % 10 + '0';		acc = temp / 10;	}	for (i = alen - blen - 1; i >= 0; i--)	{		temp = a[i] + acc;		res[i + 1] = temp % 10 + '0';		acc = temp /10;	}	res[0] = acc + '0';	printf ("a= %s, b= %s\n", a, b);	printf ("res= %s\n", res);	return 0;}int main (void){	//char *res;	//add (str_a, str_b, res);	//char ch = '2';	//single_mul (str_a, ch);	node_t *dst = NULL;	node_t *src = NULL;	tran_list (str_a, &dst);	tran_list (str_b, &src);	show_list (dst);	show_list (src);	node_t *res= NULL;	list_mul (dst, src, &res);	printf ("-----\n");	show_list (res);	combine_list (res);	printf ("a: %s\n", str_a);	printf ("b: %s\n", str_b);	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区| 欧美日韩成人综合在线一区二区| 91美女片黄在线观看91美女| 7777精品久久久大香线蕉| 久久―日本道色综合久久| 亚洲综合一二三区| 成人午夜免费视频| 日韩欧美国产麻豆| 洋洋av久久久久久久一区| 国产999精品久久| 91精品国产麻豆| 亚洲已满18点击进入久久| 国产高清久久久| 日韩午夜三级在线| 爽好久久久欧美精品| 91国偷自产一区二区三区观看| 久久久高清一区二区三区| 日韩avvvv在线播放| 欧美私人免费视频| 一区二区三区在线视频播放| 成人黄色av电影| 久久久一区二区三区| 久久国产视频网| 欧美一二三区在线观看| 亚洲图片有声小说| 欧美偷拍一区二区| 亚洲福利国产精品| 91久久香蕉国产日韩欧美9色| 国产精品国产自产拍高清av| 国产乱码精品一区二区三区忘忧草| 日韩一区二区精品| 天天影视色香欲综合网老头| 欧美日韩一卡二卡| 亚洲国产精品一区二区久久恐怖片| 色狠狠色狠狠综合| 亚洲综合色区另类av| 在线观看不卡一区| 亚洲制服丝袜av| 欧美专区在线观看一区| 亚洲综合一区二区三区| 欧美日韩久久一区| 日本系列欧美系列| 欧美精品一区二区三区一线天视频| 日本中文字幕一区二区有限公司| 宅男在线国产精品| 久久99国内精品| 久久久一区二区三区捆绑**| 粉嫩蜜臀av国产精品网站| 国产精品成人一区二区艾草 | 国产精品丝袜黑色高跟| 成人一区在线观看| 亚洲激情六月丁香| 91精品国产一区二区三区 | 夜夜嗨av一区二区三区| 欧美丰满美乳xxx高潮www| 久久激情综合网| 国产精品久久久久桃色tv| 欧美在线免费观看视频| 日本aⅴ精品一区二区三区| 久久久久久久网| 99re热这里只有精品视频| 亚洲高清久久久| 国产日韩欧美制服另类| 色综合久久中文综合久久牛| 午夜影院久久久| 国产亚洲欧美一区在线观看| 91看片淫黄大片一级在线观看| 亚洲成av人片| 亚洲国产经典视频| 欧美群妇大交群中文字幕| 国产福利精品一区二区| 亚洲一区二区三区中文字幕在线| 欧美一级理论性理论a| av亚洲精华国产精华| 五月天激情小说综合| 中文成人综合网| 69成人精品免费视频| 成人白浆超碰人人人人| 午夜日韩在线电影| 中文字幕日韩一区| 精品久久99ma| 欧美丝袜第三区| 成人黄色软件下载| 久久97超碰国产精品超碰| 亚洲在线一区二区三区| 中文字幕不卡在线观看| 欧美一区二区免费| 欧美在线观看禁18| 波多野结衣亚洲| 国产永久精品大片wwwapp| 亚洲一区欧美一区| 1000部国产精品成人观看| 欧美成人猛片aaaaaaa| 欧美在线观看视频一区二区三区| 丁香婷婷综合色啪| 精品亚洲成a人| 午夜精品在线看| 亚洲激情在线激情| 中文子幕无线码一区tr| 国产亚洲欧洲997久久综合 | 捆绑调教美女网站视频一区| 艳妇臀荡乳欲伦亚洲一区| 中文字幕免费一区| 久久久久久久久久久久久夜| 日韩三级视频中文字幕| 欧美日韩国产经典色站一区二区三区| 成人福利视频网站| 成人精品一区二区三区中文字幕| 久久99精品国产麻豆婷婷| 美女被吸乳得到大胸91| 日韩国产欧美在线观看| 亚洲与欧洲av电影| 一区二区三区在线视频免费观看| 亚洲天堂精品在线观看| 亚洲色图另类专区| 亚洲日本在线看| 亚洲人一二三区| 日韩伦理av电影| 日韩毛片精品高清免费| 亚洲精品中文字幕乱码三区| 亚洲免费观看高清完整版在线| 亚洲色图一区二区| 亚洲一区二区三区四区的| 一区二区三区在线视频观看58| 一区二区高清视频在线观看| 亚洲自拍偷拍麻豆| 日韩黄色一级片| 理论电影国产精品| 国产一区二区精品久久| 国产凹凸在线观看一区二区| 国产成人精品免费网站| 99久久久久久99| 91极品视觉盛宴| 日韩三级在线免费观看| 久久久精品欧美丰满| 国产精品久久久久久久久免费桃花| 亚洲欧美综合在线精品| 亚洲一区二三区| 日本中文一区二区三区| 国产在线麻豆精品观看| aaa欧美大片| 欧美久久一二三四区| 久久天天做天天爱综合色| 中文字幕一区在线观看视频| 亚洲一区二区三区三| 麻豆91小视频| gogo大胆日本视频一区| 欧美日韩一区二区三区在线| 日韩免费观看2025年上映的电影| 国产日韩欧美一区二区三区综合| 亚洲乱码国产乱码精品精的特点 | 国产精品美女久久久久久久网站| 亚洲视频香蕉人妖| 毛片av一区二区| 成人av在线看| 日韩欧美国产高清| 中文字幕在线不卡| 久久精品国产99久久6| 99视频热这里只有精品免费| 91精品国产色综合久久不卡电影| 欧美国产亚洲另类动漫| 日韩精品成人一区二区三区| 懂色av一区二区三区蜜臀| 777xxx欧美| 亚洲视频免费观看| 国产精品乡下勾搭老头1| 欧美性做爰猛烈叫床潮| 中文字幕av一区二区三区免费看 | 精品在线观看视频| 色爱区综合激月婷婷| 久久综合国产精品| 日韩精品1区2区3区| 日本乱码高清不卡字幕| 日韩国产精品久久| 99久久婷婷国产精品综合| 欧美精品一区二区三区在线| 亚洲成人精品一区| 色哟哟一区二区在线观看| 国产日韩欧美一区二区三区乱码| 午夜不卡av在线| 91免费国产视频网站| 国产午夜精品一区二区三区四区| 日本中文在线一区| 欧美日韩一级片网站| 一级做a爱片久久| 99国产精品久久久久| 国产欧美一区二区精品性色超碰 | 亚洲一区免费视频| 91亚洲永久精品| 国产拍欧美日韩视频二区| 奇米影视一区二区三区小说| 欧美日韩黄视频| 亚洲精品视频观看| 91免费在线看| 日韩理论片网站| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品国产成人国产三级| 国产jizzjizz一区二区| 久久天天做天天爱综合色| 国产成人综合自拍|