首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

刚学C++,所以好多都不懂,求解解决方法

2012-04-15 
刚学C++,所以好多都不懂,求解从1乘到100的程序代码怎么设计[解决办法]int pro 1for(int i 1 i 10

刚学C++,所以好多都不懂,求解
从1乘到100的程序代码怎么设计

[解决办法]
int pro = 1;

for(int i = 1; i <= 100; i++)
pro *= i;


[解决办法]

探讨

int pro = 1;

for(int i = 1; i <= 100; i++)
pro *= i;

[解决办法]
摆脱,考虑一下越界的问题好吧!int表示的值是有范围的。
这样下来i=18的时候,pro就已经越界了!
[解决办法]
推荐使用下面的代码:
double nResult = 1;
for (int i = 1; i < 100; ++i )
{
nResult *= i;
}
[解决办法]
double mul=1.0;
int i=0;
while(++i<=100)
mul*=i;
[解决办法]
探讨推荐使用下面的代码:
double nResult = 1;
for (int i = 1; i < 100; ++i )
{
nResult *= i;
}

[解决办法]
double 申明变量的话能算到多少呀??int又是多少啊??
探讨
double mul=1.0;
int i=0;
while(++i<=100)
mul*=i;

[解决办法]
1*100的程序是超大数概念,这里用int,double 都不行
必须定义数组来按位处理
你这随便一句话可还真不是那么容易实现的
[解决办法]
这就是阶乘的实现方法吧!!
如果说你是刚学cpp,而且
只是想知道阶乘的实现方法,
没必要搞的这么大,还是要学好基础
为妙!!
实现阶乘也可以用递归!!

int fac(int n)
{
if(n<0)
exit("error");

else
if(n==0)
return 0;
else 
if(n==1)
return 1;
else
return (n*(fac(n-1));
}
[解决办法]
C/C++ code
int main(){    int arr[200]={};        while(true)    {        arr[0]=1;        int num=1;        int carry=0;        int x=0;        cout <<"输入一个1至100整数求其阶乘(输入-1退出):";        cin >>x;        if(!cin)        {            cin.clear();            cin.sync();            cout <<"字符无效,重新";            continue;        }        if(-1==x)            break;        if(x<=0 || x>100)        {            cout <<"数字超出范围,重新";            continue;        }                for(int i=2;i<x+1;++i)        {            for(int k=0;k<num;++k)            {                int prod=arr[k]*i+carry;                arr[k]=prod%10;                carry=prod/10;            }            if(carry)            {                do                {                    arr[num++]=carry%10;                }                while(carry/=10);                carry=0;            }        }        cout <<x <<"!=";        for(int i=0;i<num;++i)            cout <<arr[num-1-i];        cout <<endl;    }    return 0;} 

热点排行