Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >嘿胸第,暑假还在玩?快来和我一起刷题吧

嘿胸第,暑假还在玩?快来和我一起刷题吧

作者头像
短短的路走走停停
发布于 2019-05-14 11:22:14
发布于 2019-05-14 11:22:14
47500
代码可运行
举报
文章被收录于专栏:程序猿声程序猿声
运行总次数:0
代码可运行

题目1001 害死人不偿命的(3n+1)猜想 (15)(15 分)

卡拉兹(Callatz)猜想:

对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。

输出格式:输出从n计算到1需要的步数。

输入样例:3

输出样例:5

时间限制: 400ms

内存限制: 64MB

代码长度限制: 16KB

直接暴力啊。看这情况也爆不了时间。不过居然神不知鬼不觉写出了递归……

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1#include <iostream>
 2
 3using namespace std;
 4
 5int count_n(int n)
 6{
 7    static int count = 0;
 8    if(n == 1)
 9    {
10        return count;
11    }
12    else
13    {
14        if(n % 2 == 0)
15        {
16            count++;
17            n /= 2;
18            count_n(n);
19        }
20        else
21        {
22            count++;
23            n = (3*n +1) / 2;
24            count_n(n);
25        }
26    }
27}
28
29int main1001()
30{
31    int n;
32    cin>>n;
33    cout<<count_n(n)<<endl;
34
35    return 0;
36}

1002 写出这个数 (20)(20 分)

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:1234567890987654321123456789

输出样例:yi san wu

时间限制: 400ms

内存限制: 64MB

代码长度限制: 16KB

这题,小编提交的时候居然是格式错误。输入的按字符串处理,转化整数累加,关于char和ASCII码可以去看公众号历史文章。还有一个地方就是数字和拼音对应输出,用一个数组保存数字的拼音,最后一一对上就行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1#include <iostream>
 2#include <cmath>
 3using namespace std;
 4
 5int get_wei(int n)
 6{
 7    int wei = 0;
 8    while(n > 0)
 9    {
10        wei++;
11        n /= 10;
12    }
13
14    return wei;
15}
16
17int main1002()
18{
19    char buf[255];
20    int ans = 0;
21    int i = 0;
22
23    const char numbers[10][5] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
24
25    cin.getline(buf, 255);
26    while(buf[i] != '\0')
27    {
28        ans += buf[i] - '0';
29        i++;
30    }
31    int wei = get_wei(ans);
32    int *temp = new int[wei];
33    for(int i =wei - 1; i >=0 ; i--)
34    {
35        temp[i] = ans % 10;
36        ans /= 10;
37    }
38
39    for(int i =0; i < wei-1 ; i++)
40    {
41        cout<<numbers[temp[i]]<<" ";
42    }
43
44    cout<<numbers[temp[wei-1]]<<endl;
45
46    return 0;
47}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿声 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第1章: Spring 基础第1章:Spring 基础
为了体验spring,所以建立的是一个 maven quick start 的项目,建立后的 pom.xml 配置如下:
zhuanxu
2018/08/23
2690
第1章: Spring 基础第1章:Spring 基础
对IoC容器和Bean的学习笔记
The term "Spring" means different things in different contexts. It can be used to refer to the Spring Framework project itself, which is where it all started. Over time, other Spring projects have been built on top of the Spring Framework. Most often, when people say "Spring", they mean the entire family of projects. This reference documentation focuses on the foundation: the Spring Framework itself.
dongfanger
2023/08/09
2500
对IoC容器和Bean的学习笔记
Spring入门:The IoC Container,实践篇(上)
Spring 框架的 IoC 容器(Inversion of Control,Ioc)是 Spring 框架中最基础、最重要的部分。Ioc 也被称为依赖注入(Dependency Injection,DI),是一种将组件依赖项的创建和管理外部化的技术。
WEBJ2EE
2019/09/17
9140
Spring入门:The IoC Container,实践篇(上)
Spring 框架学习(三)---- IOC创建对象
  写完了第一个Spring的程序,相信已经对spring已经有所了解了,那么我们这节来了解一下,IOC是如何创建对象,什么时候创建对象的。
RAIN7
2022/06/27
4310
Spring 框架学习(三)---- IOC创建对象
Spring IoC 容器扩展
托管给Spring IoC 容器的Bean虽然不知道容器的存在,但是容器也提供了完整的扩展点,让使用者动态干预bean的定义和实例化,以及生命周期相关的钩子。
李鸿坤
2020/07/18
5790
Spring IOC 容器源码分析
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。
yaphetsfang
2022/05/10
2710
Spring IOC 容器源码分析
Spring系列三:IoC 与 DI
在软件工程中,控制反转(IoC)是一种设计思想,对象之间耦合在一起,在运行时自动绑定,并且它们编译时对所需要引用的对象是不确定的。在这个spring教程中,通过示例了解ioc和spring中的依赖注入之间的区别。
java干货
2021/02/19
6620
Spring系列三:IoC 与 DI
Spring 学习笔记 - 核心容器
基础框架:Spring Framework ——是其他项目的根基
知识分子没文化
2023/07/01
1920
Spring 学习笔记 - 核心容器
Spring框架参考手册_5.0.0_中英文对照版_Part II_3.4
A typical enterprise application does not consist of a single object (or bean in the Spring parlance). Even the simplest application has a few objects that work together to present what the end-user sees as a coherent application. This next section explains how you go from defining a number of bean definitions that stand alone to a fully realized application where objects collaborate to achieve a goal.
Tyan
2022/05/09
5760
Spring-IOC实现【01-XML配置方式】
IOC概念 IoC控制反转(IoC,Inversion of Control), 是一个概念,是一种思想。控制反转就 是对对象控制权的转移,从程序代码本身反转到了外部容器。把对象的创建、初始化、 销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。 DI依赖注入:Dependency Injection。 依赖注入DI是指程序运行过程中,若需要调用另 一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创 建后传递给程序。 依赖注入是目前最优秀的解耦方
用户4919348
2019/04/02
6010
Spring-IOC实现【01-XML配置方式】
Spring入门
使用setter注入时,需要给每一个依赖项设置setter方法,配置文件中的 <property> 坐标中name属性的值实为setter方法的变量名,如:setter方法为 public void setBookDao(),则name属性的值为bookDao。ref属性的值为一个bean,所以需要注入的bean首先要配置bean。
Cikian.
2023/08/09
1690
Spring入门
聊一聊 Spring 6 容器 IOC
IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。
小熊学Java
2023/09/06
9900
聊一聊 Spring 6 容器 IOC
Java匹马行天下之J2EE框架开发——Spring—>用IDEA开发Spring程序(01)
*注:在IDEA中我创建的Maven项目,不了解Maven的朋友可以看我之前的博客“我们一起走进Maven——知己知彼”,了解Maven后可以看我之前的博客“Maven的安装与配置”,自行安装,行动起来吧。
泰斗贤若如
2019/06/19
8050
day33_Spring学习笔记_01
4 + 1:4个核心jar包(beans、core、context、expression)+ 1个依赖jar包(com.springsource.org.apache.commons.logging-1.1.1.jar)
黑泽君
2018/10/11
4580
day33_Spring学习笔记_01
Spring的核心之IoC容器创建对象
别先生
2018/01/02
7110
Spring之IOC容器
spring core提供了IOC,DI,Bean配置装载创建的核心实现 核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext
冬天vs不冷
2025/01/21
2400
Spring之IOC容器
Spring IoC容器与Bean管理
从本节开始,我将要学习作为java高级阶段最最最最重要的一个框架体系,名为Spring。Spring是整个Java生态中最重要的一环。因为我也是初学,所以我的概括也不一定全面和精炼。写这一章只是为自己以后复习。
害恶细君
2022/11/22
7380
Spring IoC容器与Bean管理
Spring5参考指南:依赖注入
依赖注入就是在Spring创建Bean的时候,去实例化该Bean构造函数所需的参数,或者通过Setter方法去设置该Bean的属性。
子润先生
2021/06/21
5280
Spring5参考指南:Bean的创建
Bean在Spring中就是一个业务组件,我们通过创建各种Bean来完成最终的业务逻辑功能。
程序那些事
2020/07/07
5720
Spring 基于 XML 的 IOC
  依赖注入(Dependency Injection)是 Martin Fowler 在 2004 年提出的关于 “控制反转” 的解释。Martin Fowler 认为 “控制反转” 一词让人产生疑惑,无法直白地理解到底哪方面的控制被反转了。所以 Martin Fowler 建议采用 “依赖注入” 一词来代替 “控制反转”。“依赖注入” 和 “控制反转” 其实就是一个事物的两种不同的说法而已,本质上是一回事。“依赖注入” 是一个程序设计模式和架构模型,有些时候也称为 “控制反转”。尽管在技术上来讲,“依赖注入” 是一个 “控制反转” 的特殊实现,但 “依赖注入” 还指一个对象应用另外一个对象来提供一个特殊的能力。例如,把一个数据库连接以参数的形式传到一个对象的结构方法里,而不是在那个对象内部自行创建一个连接。“依赖注入” 和 “控制反转” 的基本思想就是把类的依赖从类内部转到外部以减少依赖。利用 “控制反转”,对象在被创建时,会由一个调控系统统一进行对象实例的管理,将该对象所依赖对象的引用通过调控系统传递给它。也可以说,依赖被注入对象中。所以 “控制反转” 是关于一个对象如何获取它所依赖对象的引用的过程,而这个过程体现为谁来传递依赖的引用这个职责的反转。控制反转一般分为依赖注入(Dependency Injection,DI)和依赖查找(Dependency Lookup)两种实现类型。其中依赖注入应用比较广泛,Spring 就是采用依赖注入这种方式来实现控制反转的。
Demo_Null
2020/09/28
3810
Spring 基于 XML 的 IOC
相关推荐
第1章: Spring 基础第1章:Spring 基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验