文章

4

粉丝

174

获赞

0

访问

874

头像
翻转数的和 题解:取余取整求位值,乘以翻转后的位权相加即可得到翻转数。
P1003 兰州大学机试题
发布于2024年3月21日 11:59
阅读数 226

解题思路:输入一个数如123我们可以通过求它的余数(123%10)来获得个位3,而它的翻转数321的百位刚好是(3 * 10 * 10),十位是(2 * 10),以此类推。

这里我们可以看出,原数位数是3,而3 * 100 = 3 * (10 ^(3 - 1)),可以写一个函数得到原数的位数,然后根据前面的关系求出翻转数的每个位数,用一个以0为初始值的变量依次接收各个位数的值便可得到翻转数。

代码如下所示:

#include<iostream>
using namespace std;

int getn(int n){     //获得相应原数的翻转数的位数
    int count = 0;
    do{
        n /= 10;
        count++;
    }while(n != 0);
    
    return count;
}

void gets(int a, int b){     //求翻转数的和并输出
    int fa = 0;
    int fb = 0;
    int n = 1;
    
    for(int i = getn(a); i > 0; i--)
        n *= 10;
    while(n != 1){
        n /= 10;
        fa += (a % 10) * n;  //这条...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发