标题:考研题,跪求答案
只看楼主
liaoliao2010
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-30
 问题点数:0 回复次数:3 
考研题,跪求答案

这几天头都暴了,想下面的两题
编写算法:
1请为特长整数(例如超过500位)设计一种表示方法,然后给出两个特长整数相加的算法,并分析算法的时间复杂度.
2已知序列1212321234321234543212345654321.........是编一算法,读入一整数N,输出该数列的第N项值.
用C语言编写
QQ;15059697
e-mail;liaoliao2010@126.com

搜索更多相关主题的帖子: 考研 
2005-12-30 17:45
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

商品说明:每题百元,款到发货

商品价格:100 元

邮递信息:虚拟物品不需邮递

查看交易帮助,买卖放心

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-12-31 15:41
猪也聪明
Rank: 1
等 级:新手上路
帖 子:156
专家分:0
注 册:2005-5-16
得分:0 
以下是引用liaoliao2010在2005-12-30 17:45:00的发言:

这几天头都暴了,想下面的两题
编写算法:
1请为特长整数(例如超过500位)设计一种表示方法,然后给出两个特长整数相加的算法,并分析算法的时间复杂度.
2已知序列1212321234321234543212345654321.........是编一算法,读入一整数N,输出该数列的第N项值.
用C语言编写
QQ;15059697
e-mail;liaoliao2010@126.com

int main()
{
char *str="1212321234321234543212345654321..........";
int i=0,n,s=0,num=0;
printf("INPUT THE NUMBER\n");
scanf("%d",&n);
while(s<n)
{
i++;
s=s+2*i;
}
printf("the i is %d \n",i);
printf("the origin s is %d\n",s);
s=s-2*i;
printf("the s is %d\n",s);
getch();
num=(n-s-i-1)>0?(n-s-i-1):(-(n-s-i-1));
printf("the orgin num is %d\n",num);
getch();
num=i+1-num;
printf("the number is %d \n",num);
getch();

}


虽然我没有翅膀,可是我希望飞的高点
2006-01-01 13:34
fantasyop
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2005-2-25
得分:0 

我写的,有点乱
> 123453
>+ 345386
> = 0468839

> 999
>+ 111
> = 1110

> 112
>+ 11
> = 0123
测试了几个数 都对的,没多调试
写错无怪(我也是只菜鸟)

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MX 500

int inspect(char *num)
{
for(; isdigit(*num); num++ )
{
}

return *num;
}

int getstr(char *num, char *num2)
{
printf(" > ");
gets(num);

printf(" >+ ");
gets(num2);

if( inspect(num) || inspect(num2) ) //检查输入是否为数字
{
printf(" =>> error !\n");
}

return 1;
}

char *plus(char *num, char *num2)
{
int a, b, c, k;
char *sum = NULL;

for(a=0; *num; num++, a++)
{
}

for(b=0; *num2; num2++, b++)
{
}

c = (a > b) ? a : b;

sum = (char *)malloc( sizeof(char)*c + 2);

sum[c+1] = '\0';

num--, num2--;

for(k=0; c != -1; c--) //计算合并到sum中
{
sum[c] = *num + *num2 - 48 + k;

if(sum[c] >= 58)
{
k = 1;
sum[c] = sum[c] - 10;
}
else
{
k = 0;
}

if(--a <= 0)
{
*num = '0';
}
else
{
num--;
}

if(--b <= 0)
{
*num2 = '0';
}
else
{
num2--;
}
}

return sum;
}

int main()
{
char num[MX]={0}, num2[MX]={0} ;
char *sum = NULL;

for(; getstr(num,num2); )
{
sum = plus(num,num2);

printf(" > = %s\n\n",sum);

free(sum);
}

return 0;
}


今年俺是大菜鸟,明年俺希望是小菜鸟,......
2006-01-01 19:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-40977-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.604398 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved