c++ 一个等差数列求和公式怎么求每一行的非零最小数

欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 892 人关注过本帖
标题:这是一个关于数列的问题,,,听说难倒了很多人,,,,请帮我,谢谢请用c+ ...
等 级:新手上路
帖 子:10
结帖率:25%
&&已结贴√
&&问题点数:12&&回复次数:10&&&
这是一个关于数列的问题,,,听说难倒了很多人,,,,请帮我,谢谢请用c++语言
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
&1,3,4,9,10,12,13,…
&(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
&请你求出这个序列的第N项的值(用10进制数表示)。
&例如,对于k=3,N=100,正确答案应该是981。
输入包含多个测试数据。
每个测试数据只有1行,为2个正整数,用一个空格隔开:
&(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)
对于每个测试数据输出一个正整数(在所有的测试数据中,结果均不超过2.1*109)。
搜索更多相关主题的帖子:
来 自:何方
等 级:版主
威 望:164
帖 子:6763
专家分:42064
听说难倒了很多人
我的博客:
http://blog.yuccn. net
等 级:版主
威 望:236
帖 子:5514
专家分:31007
听说难倒了很多人
--- 这种话,能同时测出人品和智商
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
表示有人会这个数列的通项公式没?题没看懂。先数学求个通项公式,再写算法。最后编程…
同学习......同进步....你帮我......我帮你.....上善若水.....
等 级:新手上路
帖 子:10
回复 3楼 rjsp
其实我是想要多点人进来帮忙而已,如果有说的不对的地方请原谅
等 级:新手上路
至少看出了RP
等 级:新手上路
就是递归嘛&&自己写函数吧 亲···
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
真的好难哟,飞过...
我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
等 级:新手上路
将n拆成2进制数,例如题目中的100 = 2^6 + 2^5 + 2^2,所以结果是3^6 + 3^5 + 3^2 = 981;
程序不多说了,简单,主要是分析一下规律
等 级:新手上路
k^i & k^i-1 + k^i-2 + ... + k^0;
可以令f(i) = k^i;
其实就是数列的通项可以用 s(0)f(0) + s(1)f(1) + .. + s(i)f(i)来表示
s(0)..s(i)值是0或者1
第n项即是把n转换成2进制,然后二进制对应的位数如果是0,那么数列中对应的位系数是1,其余的是0
版权所有,并保留所有权利。
Powered by , Processed in 0.183958 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights ReservedC++从任意n个数构成数列找出最大数和最小数,将最大数和最后一个数互换,最小数和第一个数互换_百度知道
C++从任意n个数构成数列找出最大数和最小数,将最大数和最后一个数互换,最小数和第一个数互换
输入输出示例:输入数据个数:10¿输入数据:2 3 0 5 7 1 6 8 2 7¿处理结果:0
我有更好的答案
这个题没有什么太大的难度,只要根据题意,将最大最小值的位置记录下来就行了。具体的程序如下:#include&&iostream&#include&&limits.h&using&namespace&int&main(){&&&&int&maxNum&=&INT_MIN;&&&&int&minNum&=&INT_MAX;&&&&int&maxPos,&minP&&&&maxPos&=&minPos&=&0;&&&&int&N;&&&&cin&&&&N;&&&&int&*arr&=&new&int[N];&&&&for&(int&i&=&0;&i&&&N;&i++)&&&&{&&&&&&&&cin&&&&arr[i];&&&&&&&&if&(arr[i]&maxNum)&&&&&&&&{&&&&&&&&&&&&maxNum&=&arr[i];&&&&&&&&&&&&maxPos&=&i;&&&&&&&&}&&&&&&&&if&(arr[i]&&&minNum)&&&&&&&&{&&&&&&&&&&&&minNum&=&arr[i];&&&&&&&&&&&&minPos&=&i;&&&&&&&&}&&&&}&&&&swap(arr[maxPos],&arr[N&-&1]);&&&&swap(arr[minPos],&arr[0]);&&&&for&(int&i&=&0;&i&&&N;&i++)&&&&{&&&&&&&&cout&&&&arr[i]&&&&&&&;&&&&}&&&&cout&&&&&&&&delete&[]&&&&return&0;}运行结果为:
采纳率:84%
来自团队:
排序没学吗?冒泡排序、插入排序、选择排序。。
#include&stdio.h&#include&stdlib.h&#include&limits.h&#include&iostream& int maxnum(int *a, int l, int r){ int i,index=0,nummax = INT_MIN; for(i=l;i&=r;i++) {
if (a[i] & nummax)
nummax = a[i];
} } }int minnum(int *a, int l, int r){ int i,index=0,nummin = INT_MAX; for(i=l;i&=r;i++) {
if (a[i] & nummin)
nummin = a[i];
} } }void swap(int *p, int *q){ int temp = 0; temp = *p; *p = *q; *q =}int main(void){ int a[]={3,-1,2,5,-3,4,-6,-7,1,8,-3,5,9};
int len=sizeof(a)/sizeof(int); swap(&a[0], &a[minnum(a, 0, len-1)]); swap(&a[len-1], &a[maxnum(a, 0, len-1)]); for (int i = 0; i & ++i) {
& && a[i]; } cout && system(&PAUSE&);
return 0;}
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。萌新求助,一个数列怎么求每一行的非零最小数【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:302,357贴子:
萌新求助,一个数列怎么求每一行的非零最小数收藏
举个例子比如Z[3][4]={1,2,3,4;0,2,3,4;0,5,6,2;}怎么样编程求得B[3]={1;2;2}
循环遍历对比
登录百度帐号用C++实现:输入小于90的正整数n,求以下数列的前n项之和(精确到小数点后9位):_百度知道
用C++实现:输入小于90的正整数n,求以下数列的前n项之和(精确到小数点后9位):
数列看图片D3
我有更好的答案
#include&&iostream&#include&&cstring&using&namespace&double&qiuhe(int&m){&&&&double&currNumerator=2,currDenominator=1,&&&&double&result&=&0;&&&&while(m--){&&&&&&&&result&+=&currNumerator/currD&&&&&&&&temp&=&currN&&&&&&&&currNumerator&=&currDenominator&+&&&&&&&&&currDenominator&=&&&&&}&&&&return&&&&&&&&&&&}int&main(int&argc,char&*&argv[]){&&&&printf(&%.9lf&,qiuhe(3));;&&&&return&0;}
采纳率:58%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
如何求一个分数化成小数后的循环节?求算法,或者C++/C程序.注:分数化成小数要么是有限小数,要么是无限循环小数.
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
#include #include int main(void){int a, b,int used[10000];//b < 10000memset(used, 0, sizeof(used));printf("输入分子,分母:");scanf("%d%d", &a, &b);a %=//求可以得到小数的部分//能循环就是出现余数重复出现,则只需找到第一次重复出现的余数//0是结束标志,先将a置为重复出现,然后每次a = a*10%b求出新得的余数,并检查该余数是否出现过,有则开始重复,无则置为1,继续for(used[0] = 1, used[a] = 1, a = a*10%b; used[a] != 1 ; used[a] = 1, a = a*10%b){;}if(a == 0){printf("有限小数\n");}else{t =printf("循环小数,循环节:");do {printf("%d", a*10/b);a = a*10%b;} while (a != t);printf("\n");}return 0;}
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 等差数列求和 的文章

 

随机推荐