当前位置: 代码迷 >> C语言 >> [讨论]第八次编程题目,谢谢大家的支持.
  详细解决方案

[讨论]第八次编程题目,谢谢大家的支持.

热度:118   发布时间:2007-03-18 21:42:58.0
其实求余在中间做就可以了,不需要全部加起来再余.
如果这个数想当大,因子相当多,怕sum存不了.
----------------解决方案--------------------------------------------------------

看看我这个,第二题:
#include "stdio.h"
int main()
{
long number;
int n;
int fact[30];
int fact_n=1,i,sqrt_n,sum=0;
printf("Input two data(<=500000):(s,n)");
scanf("%ld,%d",&number,&n);
fact[0]=1;
sqrt_n=sqrt(number);
for(i=2;i<=sqrt_n;i++)
{
if(number%i==0)
{
fact[fact_n]=i;
fact_n++;
}
}
printf("facts:");
for(i=0;i<fact_n;i++)
{
printf("%4d",fact[i]);
sum+=fact[i];
}
printf("\nThe sum is:%d",sum);
printf("\nThe result is:%d",sum%n);
}


----------------解决方案--------------------------------------------------------
LS的看看11楼的.
----------------解决方案--------------------------------------------------------
唉,灌水的地方都没人了,还是来做两个题吧,毕竟楼主也是算法版的版主,题目应该有点含量
----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-3-18 21:49:38的发言:
LS的看看11楼的.

按你说的改了一下:
#include "stdio.h"
int main()
{
long number;
int n;
int fact[30];
int fact_n=1,i,sqrt_n,result=1;
printf("Input two data(<=500000):(s,n)");
scanf("%ld,%d",&number,&n);
fact[0]=1;
sqrt_n=sqrt(number);
for(i=2;i<=sqrt_n;i++)
{
if(number%i==0)
{
result+=i;
fact[fact_n]=i;
fact_n++;
result%=n;
}
}
printf("The result is:%d",result);
}

[此贴子已经被作者于2007-3-18 22:03:58编辑过]


----------------解决方案--------------------------------------------------------
第一题可以不用栈
原来做二级题的时候 有个判断回文的题。。拿来一改就行
----------------解决方案--------------------------------------------------------
我没有忘掉1和本身啊 我在最后sum求和时加上了1和num1  
----------------解决方案--------------------------------------------------------
第一题貌似并不简单
没学过数据结构,不知栈为何物
----------------解决方案--------------------------------------------------------
很抱歉17楼,是我没看清,不好意思.
----------------解决方案--------------------------------------------------------
有栈的思想在那里.
先进先出.
Mp3aaa斑竹把用回文的写出来,看看.
----------------解决方案--------------------------------------------------------
  相关解决方案