如当前数字为1234,要求出4321,简单书写一个函数即可
int Reverse(int number)
{
int reversenumber = 0;
while(number != 0)
{
reversenumber *= 10;
reversenumber += number %10;
number / 10;
}
return reversenumber;
}
题目描述
打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为22=4,1111=121。
输入描述:
无任何输入数据
输出描述:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
int main()
{
for (int i = 0; i <= 256; ++i)
{
if (i * i == Reverse(i * i))
{
cout << i << endl;
}
}
return 0;
}
题目2:
N只火鸡的价格为_xyz_,火鸡的总数N在1到99之间。价格由五位数组成,两边的数字由于褪色看不清,所以只能看到中间三位数,假设第一个数字非零,每只火鸡的价格是整数,并且所有火鸡的价格相同,给定N,x,y和z,编写一个程序来猜测两边褪色的数字和火鸡的原始价格。如果有多个价格符合题意,那么输出最昂贵的那一个。
代码:
#include <iostream>
using namespace std;
#include <string.h>
#include<cstdio>
int main()
{
int max[10] = { 0 };
int n;
cin >> n;//输入火鸡的数量
int x, y, z;
cin >> x >> y >> z;//输入中间的三位数
int count = 0;
for (int i = 1; i <= 9; ++i)//一个个的枚举,由于第一位不能为0,所以从1开始
{
for (int j = 0; j <= 9; ++j)//最后一个可以为0,所以从0开始
{
int sum = (i * 10000 + x * 1000 + y * 100 + z * 10 + j);//每次记录下枚举的五位数
if (sum % n == 0)//当枚举的五位数可以除尽火鸡的数量,这样就是可行的,可以顺势在下面求出火鸡的价格
{
count++;//用于计数,当count为0时,代表没有找到合适的五位数,结尾打印0
if ((sum / n) > max[3])//用于来记录最大的火鸡价格,当后面找到的火鸡价格没有前面的高,不给予存储
{
max[1] = i;
max[2] = j;
max[3] = sum / n;
}
}
}
}
if (count == 0)cout << 0 << endl;//没有找到的情况
else cout << max[1] << " " << max[2] <<" " << max[3];//简单打印
return 0;
}
题目3:
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
一个整数 N
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入 #1
123
输出 #1
321
输入 #2
-380
输出 #2
-83
代码:
#include<iostream>
using namespace std;
#include<cstring>
#include<iomanip>
int main()
{
int n;
cin >> n;
if (n < 0)//处理负号的问题
{
cout << "-";
n = -n;
}
while (n % 10 == 0)n /= 10;//处理0的问题
while (n)//处理正数的问题
{
cout << n % 10;
n /= 10;
}
return 0;
}