26.阶乘最后的非0位

问题描述

N的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=1*2*3*4*5=120所以5!的最后面的非零位是2,7!=1*2*3*4*5*6*7=5040,所以最后面的非零位是4。

输入说明

一个不大于1000的整数N。

输出说明

共一行,输出N!最后面的非零位。

个人总结:1核心是那个while循环,看见末尾有0(res%10==0)就赶紧除以10给它去掉,只保留非0的数字。

2, 每次乘完都要取模(比如%100000),为了防止数字太大溢出,只要最后一位。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int res=1; 
    for (int i=1;i<= n;i++) {
        res*=i; 
        while(res%10==0) {
            res/=10;
        }
        res%=100000; 
    }
    cout<<res%10<<endl;
    return 0;
}

27.算菜价

问题描述

妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。

输入说明

输入含有一些数据组,第一行第一个数是测试组数,第二行第一个数据是菜种数,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。

注意样例输入应是如下:

1

3

青菜 1  2

罗卜 2  1.5

鸡腿 2  4.2

输出说明

支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。所以,请输出一个精度为角的菜价总量。

个人总结:1,可以使用while(m--)来判断就可以不用那个for循环了 少打一点字

2,total要用double来定义,因为输出的有小数

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        int m;
        cin>>m;
        double total=0;
    while(m--){
    string cz;
    double num,price;
    cin>>cz>>num>>price;
    total+=num*price;
    }
    cout<<fixed<<setprecision(1)<<total<<endl;
}
    return 0;
}

31.素数

问题描述

判断一个数是不是素数

输入说明

第一行为N

下面N行,每行一个数字n

输出说明

判断n是不是素数,是就输出yes,否则输出no

个人总结:

1,在循环内定义一个bool来进行判断,然后is直接设置为false啥的不要再定义一次bool了

2,break要放在第二个for里面

#include<bits/stdc++.h>
using namespace std;
int main(){
    int N,n;
    cin>>N;
   for(int i=1;i<=N;i++){
        cin>>n;
        bool is=true;
        if(n<=1) {
             is=false;
        }
        for(int j=2;j<n;j++){
            if(n%j==0) {
                 is=false;
                break;
        }
    }
    if(is)cout<<"yes"<<endl;
    else  cout<<"no"<<endl;
}
return 0;
}

翻译:

在某些情况下,随着智能体的持续学习,其反应会随时间而改善。这种进步主要通过两种形式实现:1. 学习程序性知识(学习“怎么做”);2. 学习陈述性知识(学习“是什么”)。学习“怎么做”通常涉及一个试错过程,在此过程中,如果智能体做出了错误的行为,系统会通过惩罚来告知它;反之,如果表现良好则给予奖励

遵循这种方法,开发出的智能体已经能够在跳棋和国际象棋等竞技游戏中随时间提高其能力。学习陈述性知识通常采取扩展或改变储存在智能体知识库中形式。例如,一个棒球运动员必须不断调整他或她的知识库,并从中决定对未来事件的理性反应

为了对刺激产生理性的反应,智能体必须理解从传感器接收到的刺激。也就是说,智能体必须能够从其传感器产生的数据中提取信息,换句话说,智能体必须能够感知。在某些情况下,这是一个直接的过程。从陀螺仪获得的信号很容易编码成与确定反应的计算相兼容的形式。但在其他情况下,从输入数据中提取信息是困难的。例子包括理解语音和图像。同样,智能体必须能够规划其反应,以适配它们的执行器

这可能是一个直接的过程,也可能要求智能体生成完整的口语句子——这意味着智能体必须生成语音。相应地,图像处理与分析、自然语言理解和语音生成等主题都是重要的研究领域。

我们在此确定的智能体属性代表了过去以及当前的研究领域。当然,它们并非彼此完全独立。我们希望开发出拥有所有这些属性的智能体,生产出能够理解环境数据并通过学习过程开发新反应模式的智能体,该过程的目标是最大化智能体的能力。然而,通过隔离各种类型的理性行为并独立地研究它们,研究人员获得了一个立足点,这个立足点日后可以与其他领域的进步相结合,从而制造出更智能的智能体

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐