| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 907 人关注过本帖
标题:这是一个关于数列的问题,,,听说难倒了很多人,,,,请帮我,谢谢请用c+ ...
只看楼主 加入收藏
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
表示9楼,10楼的分析很精辟
我来贴个代码
程序代码:
/*****************************
Input:   (k,N)
       | Ctrl+Z to end
Output:  ans
       | "Error!"
       | "Valid!"
       | "Exit."
*****************************/

#include <iostream>
#include <bitset>

using namespace std;

typedef unsigned long ulong;
typedef unsigned int uint;

ulong An(uint k = 3, uint N = 100);

int main()
{
    uint k = 0, N = 0;
    ulong ans = 0;
   
    while(1){
        cout << "IN: " << flush;
       
        cin.sync();
        cin >> k >> N;
        if(!cin){
            if(cin.eof()){
                cout << "OUT: Exit." << endl;
                return 0;
            }
            else{
                cin.clear();
                cout << "OUT: Error!" << endl;
                continue;   
            }
        }
       
        if(ans = An(k, N)){
            cout << "OUT: " << ans << endl;
        }
        else{
            cout << "OUT: Valid!" << endl;
        }           
    }
   
    return 0;
}

ulong An(uint k, uint N)
{
    if(!((k >= 3 && k <= 15) && (N >= 10 && N <= 1000)))
        return 0;
   
    ulong sum(0), temp(1);   
    bitset<10> coef(N);
   
    for(int i = 0; i < 10; i++){   
            if(coef[i])
                sum += temp;
            temp *= k;
        }
       
    return sum;
}


人生是一场错过 愿你别蹉跎
2013-02-02 13:15
快速回复:这是一个关于数列的问题,,,听说难倒了很多人,,,,请帮我,谢谢请 ...
数据加载中...
 
   



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

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