背景
作业需要,作业原题如下
同构数是其平方数的尾数等于该数自身的自然数,例如:25*25=625。从键盘输入一个不大于10000的自然数,判断其是否是同构数并按样例格式输出。
需要逆序判定对应元素相等
对于python而言,可以对数组(列表)使用负数索引,而C++数组没有负数索引的用法
对于C++则有以下几种实现方式
阅读本文前置知识
- 掌握C++的基本语法
正文
方法一
获取数组长度之后倒叙遍历(感觉太傻了,不展开叙述)
方法二
使用.reverse()方法后正序遍历
方法三
使用auto关键字+迭代器
这个方法是笔者在作业中使用的方法
#include <iostream>
#include <string>
using namespace std;
int main(){
int num;
cin>>num;
int num2=num*num;
string str= to_string(num);//类型转换
string str2=to_string(num2);//类型转换
auto j=str.end()-1; //生成一个迭代器,指向尾元素的头地址
//(end()指向尾元素的尾地址,减一之后指向的是尾元素的头地址,参见:https://blog.csdn.net/KSroido/article/details/110452448)
for (auto i = str2.end()-1;j!=str.begin();i--) {
//auto关键字生成迭代器
if (*i==*j) j--;
else{
cout<<num<<" no,"<<num<<"*"<<num<<"="<<num2; //输出格式要求
break;
}
}
cout<<num<<" yes,"<<num<<"*"<<num<<"="<<num2;
return 0;
}
本文介绍了在C++中如何高效地进行逆序遍历数组的方法,包括获取数组长度后倒叙遍历、正序遍历配合技巧以及使用关键字`+`的独特方法。针对C++没有负数索引的问题,提供了三种实用的解决方案。
9533

被折叠的 条评论
为什么被折叠?



