赞
踩
100
任务描述
本关任务:生成一个小于(包括)3位的正整数的对称数:如由123生成123321, 若输入为负数或0,返回-1,若输入大于3位的正整数,只取最后三位生成对称数。
相关知识
为了完成本关任务,你需要掌握:1.if 分支结构;2.for 循环结构。
if 分支结构
程序中有时需要根据某些特定的条件决定对数据进行不同的操作,这就需要一种判断和选择的机制。 C++提供 if 选择语句。其一般形式为:
if (<条件表达式>) <语句>
此结构表示: 如果<条件表达式>
的值为非0
(true
),即“真”,则执行指定的<语句>
,然后按顺序执行 if 语句的后继语句。如果<条件表达式>
的值为0
(false
),即 “假”,则忽略<语句>
,按顺序执行 if 语句的后继语句。 if 选择结构只有在条件为真时才执行指定的动作;否则就跳过这个动作。实际应用中,我们经常需要根据测试条件的真假分别执行不同的处理,这种情况下 if 选择结构用起来就不自然了。为此,C++ 提供了一种双分支选择结构—— if-else 选择结构,可以在条件为真或假时分别执行指定的不同动作。C++ 的 if-else 语句的一般形式为:
if (<条件表达式>) <语句 1> else <语句 2>
else 和<语句 2>
称为 else 分支或 else 子句。上述结构表示:如果<条件表达式>
的值为非0
(true
),即“真”,则执行<语句 1>
,执行完<语句 1>
后继续执行整个 if-else 语句的后继语句;如果<条件表达式>
的值为0
(false
),即“假”,那么跳过<语句 1>
而执行<语句 2>
,执行完<语句 2>
后继续执行整个 if-else 语句的后继语句。也就是说,if-else 语句总是根据<条件表达式>
的结果,选择<语句 1>
和<语句 2>
中的一个执行,执行完后,整个 if-else 语句就算执行完了。 #####for 控制结构 C++ 提供一种语句—— for 循环语句,也称计数循环。它的一般形式为:
for (<初始化语句> ;[<条件表达式>]; [<增量表达式>] ) <语句>
其中,for 是 C 和 C++ 的关键字,表示 for 循环语句的开始。<初始化语句>
可以是任何合法的语句,<条件表达式>
和<增量表达式>
则可以由任何合法的表达式充当,其中<初始化语句>
通常是一个赋值语句,用来给循环控制变量赋初值;<条件表达式>
是一个能够转换成逻辑值的表达式,它决定什么时候退出循环,该表达式可以为空(为空时逻辑值恒为true
);<增量表达式>
定义了循环控制变量每循环一次后按什么方式变化,该表达式也可以为空,这时不产生任何计算效果。<初始化语句>
可以是表达式语句或声明语句,应该以 “;” 结束。<条件表达式>
和<增量表达式>
之间用 “;” 分开。<语句>
是for
语句的循环体。
for
语句的功能是:首先计算<初始化语句>
,然后计算<条件表达式>
的值,如果该值为false
,则结束循环,跳过循环体的<语句>
,转到整个for
语句的后继语句继续执行;如果该值为true
,则执行循环体的<语句>
,执行完循环体后,紧接着执行<增量表达式>
,再计算<条件表达式>
的值,如果该值为true
,则执行循环体的<语句>
,再执行<增量表达式>
,再计算<条件表达式>
进行测试......,直到<条件表达式>
的值为false
,则结束循环,跳过循环体的<语句>
,继续执行整个for
语句的后继语句。
编程要求
根据提示,在右侧编辑器补充main
函数,以实现生成一个小于(包括)3
位的正整数的对称数的要求,若输入为负数或0,返回-1,若输入大于3位的正整数,只取最后三位生成对称数。
测试说明
平台会对你编写的代码进行测试:
测试输入:123456
预期输出:456654
测试输入:720
预期输出:720027
开始你的任务吧,祝你成功!
源代码
- #include <iostream>
- #include <cmath>
- using namespace std;
-
-
- int main()
- {
- int num;
- cin>>num;
- //请在此添加代码,输入数字,并判断是否为正数,不是则输出“-1”;
- //如果是大于3位的正整数,只取最后三位数字,并生成对称数;如果是小于等于三位的正整数,则直接生成对称数;
- /**********Program**********/
- if(num>0){
- int t;
- int a;
- a=num;
- for(t=0;num>0;t++){
- num=num/10;
- }
- num=a;
- if(t>3){
- cout<<num%1000;
- int j=0;
- for(;j<3;j++){
- cout<<num%10;
- num=num/10;
- }
- }else{
- cout<<num;
- int j=0;
- if(num>=100){
- for(;j<3;j++){
- cout<<num%10;
- num=num/10;
- }
- }else{
- for(;j<2;j++){
- cout<<num%10;
- num=num/10;
- }
- }
- }
-
- }else{
- cout<<"-1";
- }
-
- /********** End **********/
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。