首页 > 试题广场 >

买面包

[编程题]买面包
  • 热度指数:3016 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

一天,小明去超市购买面包。在超市里面,他一共发现了多种类型面包,它随手拿了一些面包放进购物篮里。在结账之前,他很担心自己的钱不够,于是他想计算一下购物篮中面包的总价格。小明很清楚每种面包的价格和他购买每种面包的个数,但是他计算能力不足,你可以帮他计算吗?


输入描述:
第一行一个整数n,表示超市中面包的总类型数,1≤n≤100;

第二行n个整数,第i个数表示第i种面包的价格ai,1≤ai≤100;

第三行一个整数m,1≤m≤100

接下来m行每一行有两个整数x,y,表示第x种面包购买了y个,保证1≤x≤n,1≤y≤100


输出描述:
输出一个整数,表示购买面包总价格。
示例1

输入

52
73 41 72 19 94 18 45 94 75 98 44 69 21 22 68 16 20 82 71 16 89 59 80 62 70 79 36 33 62 27 22 53 83 85 66 50 7 51 72 53 87 92 58 57 6 78 43 60 41 40 56 13 
61
24 70
13 45
39 10
41 30
52 70
31 21
50 41
14 35
30 12
47 79
1 18
38 15
10 77
49 28
38 22
35 56
19 83
28 96
22 50
8 7
17 69
33 40
41 32
25 39
16 47
12 79
25 24
10 46
42 75
39 5
6 93
35 30
9 74
21 76
21 93
47 65
18 17
8 38
4 48
52 34
31 39
11 27
36 50
45 54
46 30
9 45
27 60
9 4
4 18
45 75
14 48
1 45
35 64
24 26
45 1
30 40
8 10
49 8
30 35
52 24
38 15

输出

135993
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[101],m,x[101],y[101],sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    cin>>m;
    for(int i=1;i<=m;i++)
        cin>>x[i]>>y[i];
    for(int i=1;i<=m;i++)
        sum+=a[x[i]]*y[i];
    cout<<sum<<endl;
    return 0;
}

发表于 2019-06-28 15:03:31 回复(0)
这题也是很简单,直接算就好了,细节注意一下就好,不要超限神马的
#include<iostream>
using namespace std;
int main(){
    int n,m;
    cin>>n;
    int* price=new int[n];
    for(int i=0;i<n;i++)
        cin>>price[i];
    cin>>m;
    int x,y,total=0;
    for(int i=0;i<m;i++){
        cin>>x>>y;
        total+=price[x-1]*y;
    }
    cout<<total<<endl;
}

发表于 2019-02-11 20:27:40 回复(1)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] prices = new int[n];
        for(int i = 0;i<n;i++){
            prices[i] = sc.nextInt();
        }
        int m = sc.nextInt();
        int sum =0;
        for(int i=0;i<m;i++){
            int a = sc.nextInt();
            int b = sc.nextInt();
            sum = sum + prices[a-1]*b;
        }
        System.out.println(sum);
    }
}
发表于 2019-01-15 14:16:13 回复(0)
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;   //n种面包
    int a[n+1];
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];    //第i种面包的价格为ai
    }
    int m;
    cin >> m;
    int sum = 0;    //总价格
    for(int i = 0; i < m; i++)
    {
        int x,y;    //第x种面包购买了y个
        cin >> x >> y;
        sum += a[x]*y;
    }
    cout << sum << endl;
    return 0;
}

发表于 2019-01-10 16:34:51 回复(0)

python解法

这道题目有问题,第三行一个整数m,1≤m≤100
这个整数m却是第二行输入的最后一个数字。


这样写通不过:

_, prices, total_price = input(), list(map(int, input().split())), 0
for _ in range(int(input())):
    index, cnt = map(int, input().split())
    total_price += cnt * prices[index - 1]
print(total_price)

改成这样才行:

_, prices, total_price = input(), list(map(int, input().split())), 0
for _ in range(prices[-1]):
    index, cnt = map(int, input().split())
    total_price += cnt * prices[index - 1]
print(total_price)

时间 2019-02-24

希望能修复一下这个问题,不然太坑。


另外小明是走私面包吗?一次买13万吃一年也吃不完啊

编辑于 2019-02-24 14:27:35 回复(3)
package main

import (
    "fmt"
)

func main() {
    var n int
    fmt.Scan(&n)
    prices:=make([]int,n)
    for i:=0;i<n;i++{
        fmt.Scan(&prices[i])
    }
    var m int
    fmt.Scan(&m)
    var x,y,tot int
    for i:=0;i<m;i++{
        fmt.Scan(&x,&y)
        tot+=prices[x-1]*y
    }
    fmt.Print(tot)
}

发表于 2023-03-20 13:26:00 回复(0)
#include<iostream>
#include<vector>
int main()
{
    int n,a,m,x,y;
    while(std::cin>>n)
    {
        std::vector<int>s;
        for(int i=0;i<n;i++)
        {
            std::cin>>a;
            s.push_back(a);
        }
        std::cin>>m;
        long long count=0;
        for(int i=0;i<m;i++)
        {
            std::cin>>x>>y;
            count+=s[x-1]*y;

        }
        std::cout<<count<<std::endl;
    }
    return 0;
}
发表于 2020-09-12 14:37:04 回复(0)
说的61 单独输入,结果输在了上面那一行最后,浪费时间
发表于 2020-06-23 17:05:50 回复(0)
n=int(input())
v=list(map(int,input().split()))
m=v[-1]
s=0
for i in range(m):
    w=list(map(int,input().split()))
    s+=v[w[0]-1]*w[1]
print(s)

发表于 2020-06-12 12:25:51 回复(0)
#include<iostream>
using namespace std;
int main()
{
    int n,price[100],m,x,y,sum=0;
    cin>>n;
    for(int i=0;i<n;++i)
        cin>>price[i];
    cin>>m;
    for(int i=0;i<m;++i)
    {
        cin>>x>>y;
        sum+=price[x-1]*y;
    }
    cout<<sum<<endl;
    return 0;
}

发表于 2019-05-08 17:02:34 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int n,m;
    int x[100],y[100],a[100];
    double sum=0;//总价格
    cin>>n;   //n种面包
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    cin>>m;
    for(int j=0;j<m;j++)
    {
        cin>>x[j]>>y[j];
        sum+=a[x[j]-1]*y[j];//总价格
    }
    cout<<sum<<endl;
    system("pause");
    return 0;
}
发表于 2019-05-02 10:58:19 回复(0)
#include<iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int* a = new int[n]();
    for (int ni = 0; ni < n; ni++)
        cin >> a[ni];
    
    int m;
    cin >> m;
    int* y = new int[n]();
    int x,temp;
    for (int mi = 0; mi < m; mi++)
    {
        cin >> x >> temp;
        y[x-1] = y[x-1] + temp;
    }
    
    int r = 0;
    for (int i = 0; i < n; i++)
        r += a[i]*y[i];

    cout << r;
    delete []a;
    delete []y;
    return 0;
}

编辑于 2019-04-10 10:24:58 回复(0)
n=int(input())
price=list(map(int,input().split()))
m=price[-1]
sum=0 for i in range(m):
    broadandnum=input().split()
    broadandnum = [int(x) for x in broadandnum]
sum+=(price[broadandnum[0]-1]*broadandnum[1]) print(sum)
实在是坑爹,第三行的那个数字不是单独输入的,实际上实在第二组数字的最后一个
发表于 2019-04-05 22:52:42 回复(1)
n=int(input())
price=list(map(int,input().split()))
m=int(input())
sum=0
for i in range(m):
    x,y=map(int, input().split())
    sum+=price[x-1]*y
print(sum)
为什么不能通过?

发表于 2019-03-26 15:03:44 回复(0)
题设不对
发表于 2019-03-26 14:45:27 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int n; 
    cin>>n;
    int a[n+1];
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    int sum=0;
    int m;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        int k,l;
        cin>>k>>l;
        sum+=a[k]*l;
    }
    cout<<sum<<endl;
}

发表于 2019-03-09 14:02:35 回复(0)
不知道为什么,示例可以通过,但是提交后显示查看是否存在数组越界等非法访问情况,代码如下:
???求解答
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] price = new int[n];
        String[] str = br.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            price[i] = Integer.parseInt(str[i]);
        }
        int m = Integer.parseInt(br.readLine());
        int cost = 0;
        for (int i = 0; i < m; i++) {
            str = br.readLine().split(" ");
            int x = Integer.parseInt(str[0]), y = Integer.parseInt(str[1]);
            cost += price[x - 1] * y; 
        }
        System.out.println(cost);
    }
}
发表于 2019-02-10 15:55:00 回复(0)
python为什么通过不了呢
发表于 2019-02-01 15:33:49 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n, m;
        int[] a = new int[101];
        int x, y, sum = 0;
        
        n = in.nextInt();
        for(int i = 1; i<=n; i++){
            a[i] = in.nextInt();
        }
        m = in.nextInt();
        for(int j = 1;j <= m; j++){
            x = in.nextInt();
            y = in.nextInt();
            sum += a[x] * y;
        }
        System.out.println(sum);
    }
}
 
发表于 2019-01-22 08:51:20 回复(0)
import java.util.Scanner;

/**
 * @author wylu
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = scanner.nextInt();
        }

        int m = scanner.nextInt();
        int res = 0;
        for (int i = 0; i < m; i++) {
            int x = scanner.nextInt(), y = scanner.nextInt();
            res += a[x - 1] * y;
        }
        System.out.println(res);
    }
}

发表于 2019-01-17 20:44:27 回复(0)

问题信息

上传者:小小
难度:
25条回答 3840浏览

热门推荐

通过挑战的用户

查看代码