注册 登录
编程论坛 C++教室

求!重复乘法

发布于 2010-04-29 23:33, 878 次点击
小弟想编制一个程序,目的是想要计算某些数目。内容如下:

某些数目在每一个小时都会自动扣除2%的数目。
假设是说我得到的数目是5000,但这数目已经是在40个小时之后了。
若是要以5000来计算40个小时前的真正数目是多少,需要怎样做呢?

请各位大大帮忙为小弟解答,感激不尽!
10 回复
#2
cnfarer2010-04-30 06:56
4000/(1.0-0.02)^n             ^n:表示n次方
#3
2010-04-30 12:30
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int j;
    double n,i;
    cout<<"输入现在的数i:"<<endl;
    cin>>i;
    cout<<"输入减少比率n%:"<<endl;
    cin>>n;
    n=n*0.01;
    cout<<"求j小时前输入负数否则输入正数"<<endl;
    cin>>j;
    for(int p=0;p<fabs(j);p++)
        if(j>=0) i=i+i*n;
        else i=i-i*n;
    cout<<i;
    return 0;
}
#4
南国利剑2010-04-30 13:09
我写了一个,请楼主多多指教!
程序代码:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
    double n;
    int hour;
    cout<<"请输入现在的数目:";
    cin>>n;
    cout<<"请输入经过的时间(小时):";
    cin>>hour;
    n=n*pow(1.02,(double)hour);
    cout<<hour<<"个小时前的数目是"<<setprecision(7)<<n<<endl;
    return 1;
}

#5
2010-04-30 18:46
感谢各位大大,但是我计算出来过后,该程序所给予的答案还是有点差别。。
比方说现在的数量是:786240,在23个小时前的真正数量是1226273。
但是程序给我的答案是:1239821.
想请问一下到底是我表达的方式错误了,还是我给予的资料有点不对呢?
感激各位大大!
#6
showboat20092010-05-02 23:04
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
   int  i;
   int  j;
   cout<<"请输入现在的数字:\n"<<endl;
   cin>>i;
   cout<<"得到此数所经过的时间:\n";
   while(j)
     {
       i=i*(1+0.2);
       j--;
     }
   cout<<"最初的数字是:\n";
   cout<<i;
}
没有运行,不过感觉应该没问题的!
#7
温度2010-05-03 02:17
回复 6楼 showboat2009
程序可以运行,但没有结果输出。这是其中的问题
#8
温度2010-05-03 02:46
#include<iostream>
using namespace std;
double power(double j,int n);
int main()
{
    int x,n,j;
    cout<<"请输入现在的数目:";
    cin>>x;
    j=x/(1-0.02);
    cout<<"请输入经过的时间:";
    cin>>n;
    cout<<"原来的数目是:"<<power(j,n)<<endl;
}
double power(double j,int n)
{
    double val=1;
    while(n--)
        val*=j;
    return(val);
}
#9
2010-05-03 12:36
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
    double n;
    int hour;
    cout<<"请输入现在的数目:";
    cin>>n;
    cout<<"请输入经过的时间(小时):";
    cin>>hour;
    n=n/pow(0.98,(double)hour-1);
    cout<<hour<<"个小时前的数目是"<<setprecision(7)<<n<<endl; //setprecision(n) 设显示小数精度为n位
    return 1;
}
你试一下这个吧!
#10
2010-05-04 17:39
六楼,八楼,九楼的大哥们,你们给的代码都不能运行吖。。
#11
Bosen2010-05-04 18:01
楼主!你是新手不?如果是请看看你的工程里面是不是有两个文件或者是多个文件存在main函数!
1