C++递归找规律典型题:派蒙的问题

题目描述:有一天,旅行者和派蒙来到了一个未知的世界。这个世界充满了奇幻的景色和令人迷失的迷宫。他们决定一起探索这个神秘的地方,希望寻找宝藏和解开谜题。

当他们穿越迷宫的时候,他们突然来到了一个巨大的房间。房间的中央有一个巨大的石头柱子,上面镶嵌着奇怪的符号和图案,上面写着:

long long dfs(int l, int r) {
	if(l > r) return 0;
	if(l == r) return r;
	if(l != r) {
		int mid = (l+r)/2;
		return dfs(l, mid) + dfs(mid + 1, r);
	}
}

派蒙观察了一会儿,然后惊叹道:“这是一道编程迷题,旅行者!我们必须解开这个谜题来继续前进。”

旅行者和派蒙开始思考如何解密柱子上的编程迷题。他们发现符号和图案之间存在着一定的规律和关联,只有正确理解和编码这些规律,才能解开谜题。他们深入研究了编程概念和算法,试图找到解决方案。

他们在纸上画出了一些图表和表格,尝试了各种编程逻辑和技巧。随着他们的努力,柱子上的编程迷题似乎渐渐显示出线索和解法的蛛丝马迹。他们经过不断的尝试和调整,试图找到符合迷题规则的正确编码序列。

经过旅行者和派蒙的研究,他们发现有 T 次询问,每次询问都会给两个数字,表示 l 和 r ,但每次询问都必须快速给出答案,这对派蒙的智力来说有些困难,你能帮助旅行者和派蒙解开这个迷题,继续他们的冒险吗?

输入描述:第一行一个数字 T,T≤10^5
                接下来 T 行,每行两个数字,表示给定的 l,r
                其中 1≤l≤r≤10^9

输出描述:每行输出一个数字,表示一个询问的答案

样例输入1:

1
1 1

样例输出1:

1

样例输入2:

2
1 4
3 5

样例输出2:

10
12

思路解析:分析派蒙和旅行者发现的一串c++代码,可以发现,代码的本质是从l加到r

书写代码:

long long sum(long long n){
    return n*(n+1)/2;
} 

完整代码:

#include <bits/stdc++.h>
using namespace std;
long long sum(long long n){
	return n*(n+1)/2;
}
int main()
{
	int T;
	cin>>T:
	while(T--){
		int l,r;
		cin>>l>>r;
		cout<<sum(r)-sum(l-1)<<endl;
	} 
	return 0;
}

over

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值