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

会c++的请进!!!

wenshao 发布于 2010-03-13 19:07, 723 次点击
f(n,k)=1k+2k+3k+…+nk请问这题C++怎么做?(K是次方)能把整个过程写出来吗?

[ 本帖最后由 wenshao 于 2010-3-13 21:09 编辑 ]
8 回复
#2
hahayezhe2010-03-13 20:10
F(n)=K(1+2+...+n)=Kn(n+1)/2
#3
cnfarer2010-03-13 20:22

f(n)=pow(1,k)+pow(2,k)+...+p(n,k)

用一个循环for就行了!
#4
shiyuehai2010-03-13 21:23
2楼够经典
#5
shiyuehai2010-03-13 21:46
程序代码:
#include<iostream>
using namespace std;
long pow(int n,int k)
{
    int i;
    long s=n;
    for(i=1;i<k;i++)
        s*=n;
    return s;
}
int main()
{
    int n,k,i;
    cout<<"请输入f(n,k)=1k+2k+3k+…+nk中的n和k!!!"<<endl;
    cin>>n>>k;
    long s=pow(1,k);
    for(i=2;i<=n;i++)
        s+=pow(i,k);
    cout<<"f(n,k)="<<s;
    return 0;
}
随便编一下,应该没错才对,不过运算的时候k和n不能太大,会超出long的范围
#6
wenshao2010-03-13 22:07
回复 5楼 shiyuehai
谢谢你!
#7
iou4022010-03-14 11:12
#include<iostream>
using namespace std;
int sf(int k,int n)
{
    int total=0;
    for(int i=1;i<=n;i++)
    {
            int sum=i;
           for(int j=1;j<k;j++)
           {
                   sum*=i;
            }
            total+=sum;
    }
    return total;
}
int main()
{
    int k,n;
    cout<<"请输入K和N的值:";
    cin>>k>>n;
    cout<<"结果为:"<<sf(k,n)<<endl;
    system("pause");
    return 0;
    }
#8
胡马平2010-03-16 23:33
都解决了!我就不说了!
#9
apull2010-03-17 11:04
用库函数,pow求次方,pow返回double型
程序代码:

#include <iostream>
#include <math.h>

using namespace std;

int main(void)
{
    int n,k;
    double sum=0;
    cin >>n >> k;
    for(int i=1;i<=n;i++)
    {
        sum+=pow(i,k);
    }
    cout << sum << endl;

    return 0;
   
}

1