首页 > 其他分享 >数的乘积

数的乘积

时间:2023-04-11 22:11:42浏览次数:37  
标签:乘积 int ll flag scanf lld

数的乘积

考虑用除法解决这个问题。因为如果这些数的乘积超过了 \(10^{18}\),那么用 \(10^{18}\) 依次除以这些数肯定存在一个时刻变为 \(0\)。所以就可以在不使用 __int128 这类黑科技的情况下方便的判断。注意如果有一个数是 \(0\) 应该立刻停下输出 \(0\),不然可能出现 Float Point Exception

#include<bits/stdc++.h>
using namespace std;
#define L(i,l,r) for(int i=l;i<=r;++i)
#define R(i,l,r) for(int i=r;i>=l;--i)
typedef long long ll;
ll a=1e18,b=1;
bool flag;
int main(){
    // freopen("1.in","r",stdin);
    // freopen("1.out","w",stdout);
    // ios::sync_with_stdio(0);
    // cin.tie(0);
    // cout.tie(0);
    int n;
    scanf("%d",&n);
    while(n--){
        ll x;
        scanf("%lld",&x);
        if(!x)return puts("0"),0;
        a/=x;
        if(!a)flag=1;
        b*=x;
    }
    printf("%lld",flag?-1:b);
    return 0;
}

标签:乘积,int,ll,flag,scanf,lld
From: https://www.cnblogs.com/wscqwq/p/17307961.html

相关文章

  • 剑指offer66(Java)-构建乘积数组(中等)
    题目:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中 B[i]的值是数组A中除了下标i以外的元素的积,即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例:输入:[1,2,3,4,5]输出:[120,60,40,30,24] 提示:所有元素乘积之和不会......
  • [LeetCode] 1339. Maximum Product of Splitted Binary Tree 分裂二叉树的最大乘积
    Giventhe root ofabinarytree,splitthebinarytreeintotwosubtreesbyremovingoneedgesuchthattheproductofthesumsofthesubtreesismaximized.Return themaximumproductofthesumsofthetwosubtrees.Sincetheanswermaybetoolarge,re......
  • 713. 乘积小于 K 的子数组
    力扣题目链接给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例1:输入:nums=[10,5,2,6],k=100输出:8解释:8个乘积小于100的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注......
  • 「线性DP」乘积最大
    本题为3月20日23上半学期集训每日一题中A题的题解题面题目描述今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚......
  • 华为OD机试 乘积最大值
    本期题目:乘积最大值......
  • [leetcode]2584. 分割数组使乘积互质 (质因数分解)
    题目链接:分割数组使乘积互质思路:指针循环从\([0,len-1)\)每次动态维护指针左边所有数与指针右边所有数质因数交集,第一次交集为0的地方为答案。首先将打表\(10^6\)之内的质......
  • 1239. 乘积最大
    https://www.acwing.com/problem/content/description/1241/1e5的数据量,显然不能暴搜,但是我还是要暴搜显然寄了,只能过一半数据,这题的正确做法应该分情况讨论#include<......
  • 335-分割数组使乘积互质
    分割数组使乘积互质给你一个长度为n的整数数组nums,下标从0开始。如果在下标i处分割数组,其中0<=i<=n-2,使前i+1个元素的乘积和剩余元素的乘积互质,则......
  • C语言填空:判断几位数 及乘积
    /*程序功能:输入一个不大于4位正整数,判断它是几位数,然后输出各位之积。*/#include<stdio.h>main(){inta,【1】,【2】,b;scanf("%d",&a);【3】=a;......
  • C语言:几位数 乘积
    /*输入一个不大于4位正整数,判断它是几位数,然后输出各位之积。*/#include<stdio.h>main(){inta,cj=1,wei=0,b;scanf("%d",&a);b=a;if(a<=9999......