杭电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;
}
 

发布了43 篇原创文章 · 获赞 0 · 访问量 597

猜你喜欢

转载自blog.csdn.net/weixin_45191675/article/details/104748294