简单数学问题 Ⅱ(循回逻辑问题)

今天creeper要向大家分享一个特殊的数学题目:

 这种类型的题目呢,妥妥的编程做简单,之前creeper做这种题目时常这样想......

而今天,我终于把它给做出来了!

根据题意声明并输入三个变量n,m,p~~

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,m,p;
    cin >> n >> m >> p;
    
 return 0;
}

然后就是重复m次的运算,每次都输入一个新的运算符和k:


#include <bits/stdc++.h>
using namespace std;
int main(){
    char op //注意这里要声明一个代表符号的变量op哦!
    int n,m,p ,   k   ;//  这里也四!!
    cin >> n >> m >> p;
    for(int i = 0;i < m;i++){
        cin >> op >> k;
    
    }
 return 0;
}

接着,进行三种情况的判断:

​
​
#include <bits/stdc++.h>
using namespace std;
int main(){
    char op //注意这里要声明一个代表符号的变量op哦!
    int n,m,p ,   k   ;//  这里也四!!
    cin >> n >> m >> p;
    for(int i = 0;i < m;i++){
        cin >> op >> k;
        if(op == '+'){       }
        else if(op == '-'){       }
        else  {       }
    }
 return 0;
}

​

​

然后,在各个if语句框里写上运算:


#include <bits/stdc++.h>
using namespace std;
int main(){
    char op //注意这里要声明一个代表符号的变量op哦!
    int n,m,p ,   k   ;//  这里也四!!
    cin >> n >> m >> p;
    for(int i = 0;i < m;i++){
        cin >> op >> k;
        if(op == '+'){n = (n%p + k%p)%p;}
        else if(op == '-'){n = (n%p - k%p + p)%p;}
        else  {n = (n%p * k%p)%p;}
    }
 return 0;
}

注意了注意了!这里creeper并没有直接计算(m  + / - / *  k)%p,而是使用了取模运算的一个公式:

这个公式是为了防止括号里的结果太庞大,我们的C++编程系统  int 无法承受而导致数据溢出,这样得出的结果自然就是错的了。但如果我们在括号运算之前将括号内结果变小而不影响最终结果,这种风险将大大降低,所以就用到了上述公式;

最后输出:


#include <bits/stdc++.h>
using namespace std;
int main(){
    char op //注意这里要声明一个代表符号的变量op哦!
    int n,m,p ,   k   ;//  这里也四!!
    cin >> n >> m >> p;
    for(int i = 0;i < m;i++){
        cin >> op >> k;
        if(op == '+'){n = (n%p + k%p)%p;}
        else if(op == '-'){n = (n%p - k%p + p)%p;}
        else  {n = (n%p * k%p)%p;}
    }
 cout << n;
 return 0;
}


酱紫这道题目成了,还可以用这种算法解决很多同类型题目

但creeper劝告大家做作业时还是应该踏踏实实得算,毕竟考试时可不能编程!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值