东方博宜OJ题解_1109: 【入门】加密四位数-程序员宅基地

技术标签: c++  后端  开发语言  

目录

Ⅰ.基本运算

3.拆位练习

1605: 【入门】求一个两位数的个位和十位的和

1606: 【入门】求一个两位数倒序的结果

1027: 【入门】求任意三位数各个数位上数字的和

1028: 【入门】输入一个三位数,把个位和百位对调后输出

1390: 【入门】四位数的和

1607: 【入门】两位数运算

1020: 【入门】算算和是多少

1029: 【入门】倒序输出一个四位整数

1418: 【入门】求一个5位数的各个位之和

1608: 【入门】三位数运算

1610: 【入门】买水果

1609: 【入门】四位数的计算

1611: 【入门】求六位整数的各个位

1109: 【入门】加密四位数

Ⅱ.分支

1.双分支

1303: 【入门】冷饮的价格(1)

1033: 【入门】判断奇偶数

1302: 【入门】是否适合晨练?

1632: 【入门】需要几辆车

XIV.递归进阶

1.用递归改造循环

1696: 【入门】请输出1~n之间所有的整数

1697: 【入门】请输出n~1之间所有的整数


Ⅰ.基本运算

前两个练习不想写了,实在是太简单了没话说(主要是没时间写,以后有空再补上)

3.拆位练习

1605: 【入门】求一个两位数的个位和十位的和

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,g=0,s=0;
    cin>>n;
    g=n%10;
    s=n/10;
    cout<<g+s;
    return 0;
}

1606: 【入门】求一个两位数倒序的结果

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,g=0,s=0;
    cin>>n;
    g=n%10;
    s=n/10;
    if(g==0){
        cout<<s;
    }else{
        cout<<g<<s;
    }
     
    return 0;
}

1027: 【入门】求任意三位数各个数位上数字的和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x,g,s,b=0;
	cin>>x; 
	g=x%10;
	s=x/10%10;
	b=x/100;
	cout<<g+s+b;
	

	return 0;
}

1028: 【入门】输入一个三位数,把个位和百位对调后输出

本人题解(较繁琐,可参考下方较优题解):

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x,g,s,b=0;
	cin>>x; 
	g=x%10;
	s=x/10%10;
	b=x/100;
	if(g==0&&s==0){
		cout<<b;
	}else if(g==0){
		cout<<s<<b;
	}else{
		cout<<g<<s<<b;
	}
	
	

	return 0;
}

较优题解(转载于东方博宜程序题解_sphile-程序员宅基地):

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	cout<<n%10*100+n/100+n%100/10*10;
	return 0;
}



1390: 【入门】四位数的和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x,t,sum=0;
	cin>>x;
	t=x;
	while(t>0){
		sum+=t%10;
		t/=10;
	}
	cout<<sum;
	return 0;
}

1607: 【入门】两位数运算

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	double sum=0,g=0,s=0;
	cin>>n;
	g=n%10;
	s=n/10;
	sum=s/g;
	printf("%0.1f",sum);
	return 0;
}

1020: 【入门】算算和是多少

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,g,s,b,temp=0,sum=0;
	cin>>n;
	g=n%10;
	s=n%100/10;
	b=n/100;
	temp=(g*100)+(s*10)+b;
	sum=n;
	cout<<temp+sum;
	return 0;
}

1029: 【入门】倒序输出一个四位整数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,g,s,b,q,sum=0;
	cin>>n;
	g=n%10;
	s=n%100/10;
	b=n%1000/100;
	q=n/1000;
	sum=g*1000+s*100+b*10+q;
	cout<<sum;
	return 0;
}

1418: 【入门】求一个5位数的各个位之和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,g,s,b,q,w,sum=0;
	cin>>n;
	g=n%10;
	s=n%100/10;
	b=n%1000/100;
	q=n%10000/1000;
	w=n/10000;
	sum=g+s+b+q+w;
	cout<<sum;
	return 0;
}

1608: 【入门】三位数运算

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	double g,s,b,sum=0;
	cin>>n;
	g=n%10;
	s=n%100/10;
	b=n/100;
	sum=(b+s)/(s+g);
	printf("%.2f",sum);
	return 0;
}

1610: 【入门】买水果

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a,b,c,sum=0;
	cin>>a>>b>>c;
	sum=8.5*a+5.6*b+6.2*c;
	printf("%.1f",sum);
	return 0;
}

1609: 【入门】四位数的计算

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	double g,s,b,q,x,y;
	g=n%10;
	s=n%100/10;
	b=n%1000/100;
	q=n/1000;
	x=q*10+b;
	y=s*10+g;
	cout<<x+y<<endl;
	printf("%.1f",x/y);
	
	return 0;
}

1611: 【入门】求六位整数的各个位

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,g,s,b,q,w,sw;
	cin>>n;
	g=n%10;
	s=n%100/10;
	b=n%1000/100;
	q=n%10000/1000;
	w=n%100000/10000;
	sw=n/100000; 
	cout<<sw<<endl<<w<<endl<<q<<endl<<b<<endl<<s<<endl<<g;
	
	return 0;
}

1109: 【入门】加密四位数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,g,s,b,q;
	cin>>n;
	g=n%10+5;
	s=n%100/10+5;
	b=n%1000/100+5;
	q=n/1000+5;
	g%=10;
	s%=10;
	b%=10;
	q%=10;
	cout<<g<<s<<b<<q;
	return 0;
}

Ⅱ.分支

1.双分支

1303: 【入门】冷饮的价格(1)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    double sum;
    cin>>n;
    if(n>=10){
        sum=2*n;
    } else{
        sum=2.2*n;
    }
    printf("%.1f",sum);
     
    return 0;
}

1033: 【入门】判断奇偶数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    if(n%2==0){
        cout<<"y e s";
        return 0;
    }else{
        cout<<"n o";
        return 0;
    }
     
 
    return 0;
}

1302: 【入门】是否适合晨练?

#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	cin>>t;
	if(t>=20&&t<=30){
		cout<<"OK";
	} else{
		cout<<"NO";
	}
	
	return 0;
}

1632: 【入门】需要几辆车

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,sum;
	cin>>n;
	sum=n/30;
	if(n%10==0){
		if(sum==0){
			cout<<sum+1;
		}else{
			cout<<sum;
		}	
	}else{
		cout<<sum+1;
	}
	
	
	return 0;
}
中间的暂时不写,先写递归

XIV.递归进阶

1.用递归改造循环

前几题不知道为啥,明明一个循环就可以做,还放到递归里。

1696: 【入门】请输出1~n之间所有的整数

递归做法:

#include<bits/stdc++.h>
using namespace std;
int n;
void count(int i){
	if(i==1){
		cout<<i<<endl;
	}else{
		count(i-1);
		cout<<i<<endl;
		
	}
}
int main(){
	cin>>n;
	count(n);

	return 0;
}

for循环做法:

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

1697: 【入门】请输出n~1之间所有的整数

递归做法:

#include<bits/stdc++.h>
using namespace std;
int n;
void count(int i){
	if(i==n){
		cout<<i<<endl;
	}else{
		count(i+1);
		cout<<i<<endl;
		
	}
}
int main(){
	cin>>n;
	count(1);

	return 0;
}

while循环做法(官方题解):

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chen15155103467/article/details/121067899

智能推荐

Failed to discover available identity versions when contacting http://controller:35357/v3. 错误解决方式_caused by newconnectionerror('<urllib3.connection.-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏12次。作为 admin 用户,请求认证令牌,输入如下命令openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue报错Failed to discover available identity versions whe._caused by newconnectionerror('

学校机房统一批量安装软件的方法来了_教室电脑 一起装软件-程序员宅基地

文章浏览阅读4.5k次。​可以在桌面安装云顷还原系统软件,利用软件中的网络对拷功能部署批量对拷环境,进行电脑教室软件的批量对拷安装与增量对拷安装。​_教室电脑 一起装软件

消息队列(kafka/nsq等)与任务队列(celery/ytask等)到底有什么不同?_任务队列和消息队列-程序员宅基地

文章浏览阅读3.1k次,点赞5次,收藏7次。原文链接:https://www.ikaze.cn/article/43写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在和同事介绍celery时同事说了一句“这不就是kafka吗?”。那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一..._任务队列和消息队列

Java调KT类_java 调用kt 对象-程序员宅基地

文章浏览阅读1.5k次。1,MyUtuils.kt将被调用的文件class MyUtils { fun show(info:String){ println(info) }}fun show(info:String){ println(info)}2,Java文件调用该类,ClientJava.javapublic class ClientJava { public static void main(String[] args) { /** _java 调用kt 对象

UDP报文最大长度_最大请求报文大小-程序员宅基地

文章浏览阅读6.6k次,点赞4次,收藏4次。在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层. UDP属于运输层_最大请求报文大小

Windows CMD命令行程序中 无限死循环 执行一段命令_cmd装比代码无限循环-程序员宅基地

文章浏览阅读10w+次,点赞14次,收藏18次。代码如下:for /l %a in (0,0,1) do echo hello,world粘贴在cmd命令行窗口中,回车即可无限死循环输出hello,world。如果需要停止,可以按ctrl+c中断。解析通用形式:for /l %variable IN (start,step,end) DO command [command-parameters] 该集表示以增量形式从start到end的一个数字序列。具体到第一段代码,如果是 (0,0,1) 就是从0开始,每次增_cmd装比代码无限循环

随便推点

vue.js知识点-transition的钩子函数应用(实例展示)_transition 钩子-程序员宅基地

文章浏览阅读1.6k次。本小结通过transition的钩子函数实现小球半场动画头条-静敏的编程秘诀-vue教程合集知识点1:入场、出厂方法beforeEnter表示动画入场之前,此时,动画尚未开始,可以在beforeEnter中设置元素开始动画之前的起始样式enter表示动画开始之后的样式,这里可是设置小球完成动画之后的,结束状态enter(el,done)el:动画钩子函数的第一个参数:el,..._transition 钩子

MyBatis 多表映射及动态语句

主要梳理mybatis多表及动态使用

Qt 多线程基础及线程使用方式-程序员宅基地

文章浏览阅读2.9w次,点赞98次,收藏777次。文章目录Qt 多线程操作2.线程类QThread3.多线程使用:方式一4.多线程使用:方式二5.Qt 线程池的使用Qt 多线程操作应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。Qt中使用多线程需要注意:Qt的默认线程为窗口线程(主线程):负责窗口事件处理或窗口控件数据的更新;子线程负责后台的业_qt 多线程

GQA分组注意力机制

【代码】GQA分组注意力机制。

android 耗电分析与性能优化-程序员宅基地

文章浏览阅读218次。1.官方的建议1.1 电池续航时间优化(Optimizing Battery Life)参考文章:优化电池使用时间已有中文的详细说明,此处做简要说明:(1)监控电池电量和充电状态(Monitoring the Battery Level and Charging State)通过系统广播,获取充电状态和电池电量的变化来调整数据更新等操作;如在充电时,更新数据及应用,在低电量时,减少更新频..._com.tencent.mm:exdevice

pytorch基础 神经网络构建-程序员宅基地

文章浏览阅读818次,点赞14次,收藏9次。计算e1=2.718,e5=148.413,e3=20.086,e1+e5+e3=171.217。“人/B 们/E 常/S 说/S 生/B 活/E 是/S 一/S 部/S 教/B 科/M 书/E ”给一段文字做分词标注,标注每个字对应的标号。图中是双向的三层 RNNs,堆叠多层的RNN网络,可以增加模型的参数,提高模型的拟合。双向的 RNN 是同时考虑“过去”和“未来”的信息,输入(黑色点)沿着黑色的实线箭。比如标签0将表示为([1,0,0,0,0,0,0,0,0,0]),标签3将表示为。

推荐文章

热门文章

相关标签