11 %运算符
题目来源和说明
题目来源于王道考研,题目链接如下:
https://www.nowcoder.com/questionTerminal/8c3c5dae2c4a4266ba04f993a18e286b
题目描述
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
样例
输入
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
输出
3
-1
-1
100
简要分析
这个题目我们依次取出倒数第K个数字即可,如果不相等,则直接退出不再进行判断,返回a+b就行
C++ 代码
#include<iostream>
using namespace std;
int main() {
    int a,b,k;
    while(scanf("%d%d%d",&a,&b,&k)!=EOF&&a!=0&&b!=0) {
        int ret=-1;
        int tempa=a;
        int tempb=b;
        while(k--) {
            if(a%10!=b%10) {
                ret=tempa+tempb;
                break;
            }
            a/=10;b/=10;
        }
        printf("%d\n",ret);
    }
    return 0;
}
同类题目
- 守形数
 
https://www.nowcoder.com/questionTerminal/99e403f8342b4d0e82f1c1395ba62d7b
C++代码
#include<iostream>
using namespace std;
int main() {
    int a;
    while(scanf("%d",&a)!=EOF) {
        int b=a*a;
        while(a) {
            if(a%10!=b%10) {
                printf("No!\n");
                break;
            }
            a/=10;b/=10;
        }
        if(a==0) printf("Yes!\n");
    }
    return 0;
}
- 特殊乘法
 
https://www.nowcoder.com/questionTerminal/a5edebf0622045468436c74c3a34240f?toCommentId=12462195
C++代码
#include<iostream>
int buf1[15],buf2[20];
int size1=0,size2=0;
using namespace std;
int main() {
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF) {
        size1=0;size2=0;
        int ans=0;
        while(a!=0) {
            buf1[size1++]=a%10;
            a=a/10;
        }
        while(b!=0) {
            buf2[size2++]=b%10;
            b=b/10;
        }
        for(int i=0;i<size1;i++) {
            for(int j=0;j<size2;j++) {
                ans+=buf1[i]*buf2[j];
            }
        }
        printf("%d\n",ans);
    }
}
- 反序数
 
https://www.nowcoder.com/questionTerminal/e0d06e79efa44785be5b2ec6e66ba898?toCommentId=12462344
C++代码
#include<iostream>
using namespace std;
int main() {
    for(int i=1000;i<=1111;i++) {
        int a=i;
        int b=0;
        while(a) {
            b=b*10+a%10;
            a/=10;
        }
        if(b==i*9) {
            printf("%d\n",i);
        }
    }
    return 0;
}
- 对称平方数
 
https://www.nowcoder.com/questionTerminal/1b79865e2f534db0adba84dca10d6bae
C++代码
#include<iostream>
using namespace std;
bool isret(int a) {
    int temp[20];
    int idx=0;
    do{
        temp[idx++]=a%10;
        a=a/10;
    }while(a!=0);
    int i=0;
    int j=idx-1;
    for(;i<=j;i++,j--) {
        if(temp[i]!=temp[j]) {
            return false;
        }
    }
    return true;
}
int main() {
    for(int i=1;i<256;i++) {
        if(isret(i*i)) {
            printf("%d\n",i);
        }
    }
    return 0;
}
- Digital Root
 
https://www.nowcoder.com/questionTerminal/cef727d0af33479c9fb4a9c120702414
C++代码
#include<iostream>
using namespace std;
int digitRoot(int a) {
    int res=0;
    do{
        res+=a%10;
        a/=10;
    }while(a!=0);
    if(res>9) return digitRoot(res);
    else return res;
}
int main() {
    int a;
    while(scanf("%d",&a)!=EOF) {
        printf("%d\n",digitRoot(a));
    }
    return 0;
}
Leetcode题目太多,不知道如何准备高校夏令营?欢迎关注本专栏,和本小白一起准备夏令营吧! 本专题的规划如下: 截止到4月下旬:以王道考研为依托,提供夏令营机考的准备计划,打好基础 截止到5月中旬:以剑指offer进一步加强 本专题的内容如下: 1. 给出题目的在线测试链接,方面您检查代码的正确性 2. 给出题解
