杭电oj1005、1720、2057、2136

1005

#include<iostream>
#include<cmath>
using namespace std;
int main(){
	int A,B,n;
	int arr[49]={1,1};
	while(1){
	cin>>A>>B>>n;
	if(A==B==n==0)
	 break;
	for(int i=2;i<49;i++){
		arr[i]=(A*arr[i-1]+B*arr[i-2])%7;
	}
	cout<<arr[(n-1)%49]<<endl;
	} 

	return 0;
}

1720

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a,b;
/*	while(cin>>hex>>a>>b)
	cout<<a+b<<endl;*/
	while(scanf("%x %x",&a,&b)!=EOF)
	   printf("%d",a+b);
	return 0;
} 

2057

#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
int main(){
	__int64 a,b,sum;		
	while(cin>>hex>>a>>b){
		sum=a+b;
		if(sum<0){
			cout<<"-";
			cout<<hex<<uppercase<<-sum<<endl;
		}
		else
		    cout<<hex<<uppercase<<sum<<endl;
	}
	   
	return 0;

2136

#include <iostream>
#include <cstdio> 
using namespace std; 
const int maxn = 1000005;
int biao[maxn];//最大质因子的位置 
 
/**
 * 求一个数的最大质因子的位置。如2的位置是1。
 * 3的位置是2
 */
void prepare(){
	int i;
	int k = 1;
	for(i = 2 ; i < maxn ; ++i){//遍历数据范围内的所有数
		if(biao[i] == 0){//如果这一个数的最大质因子的位置还没有确定
			int j;
		/*把含有这个质因子的所有数的位置都标记成这个质因子的位置*/ 
			for(j = 1 ; i*j < maxn ; ++j){
				biao[i*j] = k;
			}
			k++;//质因子的位置索引+1
		}//if 
	}
}
 
 
int main(){
	int n;
	prepare();
	while(scanf("%d",&n)!=EOF){
		printf("%d\n",biao[n]);//biao[n]表示n的最大质因子的位置
	}
 
	return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值