列表

详情


NC50569. 曹冲养猪

描述

自从曹冲搞定了大象以后,曹操就开始琢磨让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲很不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把。
举个例子,假如有16头母猪,如果建了3个猪圈,剩下1头猪就没有地方安家了;如果建造了5个猪圈,但是仍然有1头猪没有地方去;如果建造了7个猪圈,还有2头没有地方去。你作为曹总的私人秘书理所当然要将准确的猪数报给曹总,你该怎么办?

输入描述

第一行包含一个整数n,表示建立猪圈的次数;
接下来n行,每行两个整数a_i,b_i,表示建立了a_i个猪圈,有b_i头猪没有去处。你可以假定a_i,a_j互质。

输出描述

输出仅包含一个正整数,即为曹冲至少养猪的数目。

示例1

输入:

3
3 1
5 1
7 2

输出:

16

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 408K, 提交时间: 2022-08-21 16:21:11

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long int n;
    long long int a,b,c,d;
    cin>>n;
    cin>>a>>b;
    for(int i=1;i<n;i++)
    {       cin>>c>>d;
        while(b%c!=d)
        {
        	b+=a;
		}          
        a=a*c;
    }
        cout<<b<<endl;    
}

C(clang11) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2021-05-09 11:26:28

#include<stdio.h>

int main()
{
	  long int n;
		long long int a,b,c,d;
	scanf("%d",&n);
	
		scanf("%lld %lld",&a,&b);
		for(int i=1;i<n;i++)
		{	scanf("%lld %lld",&c,&d);
			while(b%c!=d)
			b+=a;
		a*=c;
		}
		printf("%lld\n",b);
        
    return 0;
}

C++(clang++11) 解法, 执行用时: 4ms, 内存消耗: 380K, 提交时间: 2021-05-09 11:23:39

#include<iostream>
using namespace std;
int main()
{
	  long int n;
		long long int a,b,c,d;
	cin>>n;
	
		cin>>a>>b;
		for(int i=1;i<n;i++)
		{		cin>>c>>d;
			while(b%c!=d)
				b+=a;
			a=a*c;
		}
			cout<<b<<endl;
        
}

上一题