问题标题: 酷町堂:2271+5008

0
0
已解决
高舒豪
高舒豪
中级光能
中级光能

2271   高级阶乘和经验值:800

题目描述 Description

已知s=1!+2!+3!+…+n!,这时s是从1到n的所有阶乘的和。老师把题目升级了,想要求从m到n的所有阶乘的和。(1<=m<n<=15)

输入描述 Input Description

两个数字m和n,用空格隔开

输出描述 Output Description

一个数字,求得的阶乘和

样例输入 Sample Input

1 3

样例输出 Sample Output

9

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	long long jc=1,sum=0;
	cin>>n>>m;
	for(int i=n; i<=m; i++){
		jc*=i;
		sum+=jc;
	}
	cout<<sum;
	return 0;
}

一直是二十分

 

5008   酷町喵的日常——黑车司机经验值:800

题目描述 Description

清明节,酷町喵和她的小伙伴一起去踏青。她们打算一起去一个很远的地方玩耍,但是不幸上了一辆黑车。这辆黑车的计价器是坏的,计价器跳的特别快。酷町喵的钱袋子里只有x元,但是计价器上个的价格从起步价的8元开始每公里5元的价格飞速跳动!请帮助酷町喵算算最后在不超过自己带的x元的情况下,要花多少钱?计价器跳了多少次?

输入描述 Input Description

一行,一个整数x

输出描述 Output Description

一行,空格隔开的两个整数,分别表示最后付的钱,以及计价器跳的次数

样例输入 Sample Input

50

样例输出 Sample Output

48 8

数据范围及提示 Data Size & Hint

8 13 18 23 28 33 38 43 48 53,超过了50。所以不超过50最多要付48。计价器一共跳了8次。
tips
起步价:是搭乘出租车的基础价格,在一定里程内,只要坐车就一定会花这么多钱。超过这个里程之后的路程,价格一般按路程另算。

70分

高舒豪在2021-04-02 13:05:19追加了内容
#include <bits/stdc++.h>
using namespace std;
int main(){
	int x;
	int k=8;
	long long cnt=0,sum=0;
	cin>>x;
	do{
		cnt++;
		sum+=k;
		k+=5;
	}
	while(sum<=x);
	cout<<sum<<" "<<cnt;
	return 0;
}

 


0
已采纳
李子杰
李子杰
资深光能
资深光能

对不起,@高舒豪!!!

2271:

    1,longlong定义4个变量,前两个输入,后两个分别赋值为0,1;

    (例子:longlong m,n,s,x;  cin>>m>>n;  s=0;x=1;)

     2.for(int i=1;i<=n;i++){

            原本赋值为1的变量*=i;

            if(i>=第一个变量){

                     原本赋值为0的变量+=原本赋值为1的变量;

            }

      }

3.输出<<原本赋值为0的变量;

4.结束

 

对不起,一开始我看错题了

李子杰在2021-04-03 12:13:25追加了内容

给这个!!!

0
聪雨墨
聪雨墨
高级守护
高级守护

分数一样。。。。。。

0
汪宇航
汪宇航
新手启示者
新手启示者

2271:

你可以编一个函数,如:

long long jc(int n){

long long h=1;

for(int i=1;i<=n;i++){

h*=i;

}

return h;

}

主函数:

long long s=1;

for(int i=1;i<=x;i++){

s+=jc(i);

}

输出s

0
汪宇航
汪宇航
新手启示者
新手启示者

5008:

cout<<(x-8)/5*5+8<<" "<<(x-8)/5;

0
汪宇航
汪宇航
新手启示者
新手启示者

@高舒毫:​​

5008完全可以直接输出

0
李子杰
李子杰
资深光能
资深光能

我来了,@高舒豪!!!

 

 

2271:

1.int定义两个整数,longlong定义jc=1,sum=0;并输入int变量

2.if(第一个变量>=1&&第二个变量>=第一个变量&&第二个变量<=15){

        3.for(int i=m;i<=n;i++){

                阶乘*=i;

                求和+=阶乘;

        }

        4.输出<<求和;

}

5.结束

 

 

5008:

1.定义两个int变量,第1个输入,第2个赋值为8。定义两个longlong变量,sum=0,cnt=0;

2.while(第二个变量<第一个变量){

            第二个变量+=5;

            计数器++;

            3.if(第二个变量>第一个变量){

                    第二个变量-=5;

                    计数器--;

                    break;

            }

}

4.输出<<第二个变量<<"    "<<计数器;

5.结束

(这两题其实不难,看懂题就还好了。)

 

 

0
我要回答