hdu 蟠桃记

蟠桃记

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 60   Accepted Submission(s) : 47
Font: Times New Roman | Verdana | Georgia
Font Size: ← →

Problem Description

喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵^-^
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

Input

输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。

Output

对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。

Sample Input

2
4

Sample Output

4
22
第一种方法(递归):最后一天的桃子数为f(1)=1;n为第n天剩最后一个桃子则f(n)=(f(n-1)+1)*2;
#include <iostream>
using namespace std;
int fun(int n)
{
    int f;
    if(n==1)
        f=1;
    if(n>1)
        f=(fun(n-1)+1)*2;
    return f;
}
int main()
{
    int n;
    while(cin>>n)
        cout<<fun(n)<<endl;
    return 0;
}
第二种方法:循环
#include <iostream>
using namespace std;
int main()
{
    int n,f1,f2;
    while(cin>>n)
    {
        f1=1;
        n--;
        if((n+1)==1)
        
        cout<<f1<<endl;
        
        else
        {
        while(n--)
        {
            f2=(f1+1)*2;
            f1=f2;
        }
        cout<<f2<<endl;
        }
    }
    return 0;
}
第三种方法:数组
#include <iostream>
using namespace std;
int a[10000];
int main()
{
    int n,f1,f2;
    while(cin>>n)
    {
      a[1]=1;
      for(int i=2;i<=n;i++)
          a[i]=(a[i-1]+1)*2;
      cout<<a[n]<<endl;
    }
    
    return 0;
}
第四种方法:数学公式
#include <iostream>
using namespace std;
int main()
{
    int n,sum;
    while(cin>>n)
    {
        sum=3*(1<<(n-1))-2;
        cout<<sum<<endl;
    }
        return 0;
}
和第二种方法类似:循环
#include <stdio.h>
int main()
{
    int i,n,m;
    while(scanf("%d",&n)!=EOF)
    {
        m=1;
        n--;
        while(n--)
        {
            m=(m+1)*2;
        }
        printf("%d\n",m);
    }
    return 0;
}
 
好的!以下是关于如何通过Python实现HDU“我爱单词”自动答疑的一个简单介绍: --- ### HDU 我爱单词 自动答疑的 Python 程序实现 #### 背景简介 "HDU 我爱单词" 是一种常见的在线学习工具,用于帮助用户忆英语单词。通常需要手动完成一些题目(如选择题、填空题等)。为了提高效率或辅助学习者理解题目规律,可以编写一个基于 Python 的自动化程序。 这种自动答题程序的核心思想包括以下几个步骤: 1. **模拟登录**:使用 HTTP 请求库访问目标网站,并保持会话状态。 2. **解析页面内容**:从 HTML 或 JSON 数据中提取出当前的试题信息。 3. **处理数据并生成答案**:利用规则匹配或其他算法计算得出正确的选项或填写的答案。 4. **提交结果**:将得到的结果发送回服务器验证是否正确。 #### 技术栈及核心功能模块 - **网络请求部分**: 可采用 `requests` 库来进行网页抓取;如果涉及更复杂的交互操作,则需要用到 `selenium`. - **HTML 解析部分**: 使用 BeautifulSoup (bs4) 对获取到的数据进行结构化分析,找到关键字段例如题目描述以及候选词列表. - **自然语言处理(NLP)**: 如果存在模糊查询需求的话,那么可能要用到像 jieba 分词这样的文本预处理器或者是其他深度模型来判断最佳选项. 下面给出一段简化版代码框架供参考: ```python import requests from bs4 import BeautifulSoup # Step 1 - Simulate login process if necessary def simulate_login(username, password): url = "http://example.com/login" payload = {'username': username, 'password': password} session = requests.Session() response = session.post(url, data=payload) return session # Step 2 - Fetch question details and parse them with beautifulsoup def fetch_question(session): url = "http://example.com/question" resp = session.get(url) soup = BeautifulSoup(resp.text,"html.parser") # Example of extracting the word to match from a div tag attribute class="word_to_match". target_word_div = soup.find('div', attrs={'class':'word_to_match'}) target_word_text = "" if(target_word_div != None): target_word_text=target_word_div.string.strip() options_list=[] option_tags=soup.select('.option') # Assuming each possible answer has an .option CSS selector applied for opt in option_tags: options_list.append(opt.getText().strip()) return {"target":target_word_text,"options":options_list} # Step 3 - Process logic here according to your needs, such as finding best matching word between list items... def find_best_answer(question_data): ...implement specific algorithm... # Step 4 - Submitting final choice back onto platform after selecting it programmatically using form submission etc.. def submit_answer(session,chosen_response): ... if __name__ == "__main__": user='your_account' passwd='<PASSWORD>' s= simulate_login(user,passwd) qdata =fetch_question(s) ans=find_best_answer(qdata) resubmit_result=submit_answer(s,ans) ``` 上述仅为示意图解,在实际部署过程中还需注意异常捕获机制设计安全性和合法性等问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值