博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九度OJ 1089:数字反转 (数字反转)
阅读量:4206 次
发布时间:2019-05-26

本文共 1283 字,大约阅读时间需要 4 分钟。

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:3059

解决:1678

题目描述:

    12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转。

输入:

    第一行一个正整数表示测试数据的个数n。

    只有n行,每行两个正整数a和b(0<a,b<=10000)。

输出:

    如果满足题目的要求输出a+b的值,否则输出NO。

样例输入:
212 3499 1
样例输出:
46NO
来源:

思路:

数字反转可借助字符串来实现。(见代码1)

更好的办法是直接反转。(见代码2)

代码1:

#include 
#include
#define MAX 7 void fanzhuan(char *a, char *af){ int i; int len = strlen(a); for (i=0; i
=0; i--) { if (af[i] > '0') { af[i+1] = '\0'; break; } } } void add(char *a, char *b, char *sum){ int lena=strlen(a), lenb=strlen(b); int i; char tmp; for (i=0; i
'9') { sum[i+1] = ((sum[i]-48)/10) + 48; sum[i] = ((sum[i]-48)%10) + 48; } } //for (i=0; i
=0; i--) { if (sum[i] > '0') { sum[i+1] = '\0'; break; } } if (i < 0) sum[1] = '\0'; int lens = strlen(sum); for (i=0; i

代码2:

#include 
#include
int fz(int a){ int n = 0; while (a) { n = n*10 + a%10; a /= 10; } return n;} int main(void){ int n, i; int a, b; scanf("%d", &n); for (i=0; i

转载地址:http://zfeli.baihongyu.com/

你可能感兴趣的文章
c++构造函数的分类和调用
查看>>
c++编译器构造析构方案 PK 对象显示初始化方案
查看>>
拷贝构造函数调用时机第一种和第二种调用场景
查看>>
c++中copy构造函数调用的第三种情形
查看>>
c++设计模式之简单工厂模式
查看>>
c++设计模式之工厂模式
查看>>
c++设计模式之三~抽象工厂模式
查看>>
c++设计模式之单例模式
查看>>
c++设计模式之建造者模式
查看>>
c++设计模式之原型模式
查看>>
c++设计模式之适配器模式
查看>>
c++设计模式之桥接模式
查看>>
c++设计模式之一组合模式
查看>>
c++设计模式之装饰模式
查看>>
c++设计模式之一:外观模式
查看>>
c++设计模式之一:享元模式
查看>>
c++设计模式之一:代理模式
查看>>
c++设计模式之:职责链模式
查看>>
c++设计模式之命令模式
查看>>
c++设计模式之:解释器模式
查看>>