牛客网刷题7(2道题)

14.构建乘积数组

题目链接
https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46?tpId=13&&tqId=11204&rp=7&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking
题目描述
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。
题目分析

  1. B[i]项等于数组A所有项的乘积,但是去除A[i]项。
  2. 循环遍历数组A,当遇到A[i]项时,跳过。
  3. 把数组A(除A[i])的n-1个元素中做完乘法后赋值给数组B[i]。
function multiply(array)
{
    var b = new Array(array.length).fill(1);
    for(var i=0; i<array.length; i++){
        for(var j=0; j<array.length; j++){
            if(i == j){
                continue;
            }
            b[i] *= array[j]; 
        }
    }
    return b;
}

15.汽水瓶

题目链接
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f?tpId=37&&tqId=21245&rp=7&ru=/activity/oj&qru=/ta/huawei/question-ranking
题目描述
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
输入描述:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。
示例1
输入
3
10
81
0
输出
1
5
40
题目分析
最后获得的饮料数是总空瓶数整除2 。

#include<stdio.h>
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int count=0;
		if(n==0){
			return 0;
		}
		else{
			count = n/2;
			printf("%d\n",count);
		}
	}
	return 0;
} 
发布了22 篇原创文章 · 获赞 0 · 访问量 370

猜你喜欢

转载自blog.csdn.net/weixin_41796393/article/details/104204448