zoukankan      html  css  js  c++  java
  • 团体程序设计天梯赛 L1-006~L1-010

    L1-006

    思路:

    先求出该数的最小约数,然后从长度2开始利用尺取法枚举即可

    代码:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    int main(){
    	ios::sync_with_stdio(false); cin.tie(nullptr);   //2147483647
    	LL n; cin>>n;
    	int ans=2; LL fac=2; deque<LL> qq;
    	for(;fac*fac<=n;fac++) if(n%fac==0) break;
    	if(fac*fac>n) fac=n;    //寻找最小能被整除的数 
    	while(true){
    		deque<LL> due; 
    		LL pro=1; bool flag=false;
    		for(LL i=2;i-2<ans;i++) due.push_back(i),pro*=i;
    		for(LL i=ans+2;;i++){
    			if(n%pro==0){qq=due,flag=true;break;}
    			if(pro>n||pro<0) break;
    			pro/=due.front(); due.pop_front(); due.push_back(i); pro*=i;
    		}
    		if(flag==false) break;
    		ans++;
    	}
    	if(qq.size()){
    		cout<<qq.size()<<'
    ';
    		cout<<qq.front(); qq.pop_front();
    		for(LL x:qq) cout<<'*'<<x;
    	}else cout<<1<<'
    '<<fac;
    	return 0;
    }
    

    L1-007

    思路:

    按要求输出即可

    代码:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    string s[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    int main(){
    	ios::sync_with_stdio(false); cin.tie(nullptr);
    	string ss; cin>>ss;
    	vector<string> v;
    	for(char c:ss){
    		if(c=='-') v.push_back("fu");
    		else v.push_back(s[c-'0']);
    	}
    	cout<<v[0]; for(int i=1;i<v.size();i++) cout<<' '<<v[i];
    	return 0;
    }
    

    L1-008

    思路:

    学会用printf("%5d")

    代码:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	ios::sync_with_stdio(false); cin.tie(nullptr);
    	int a,b,ans=0; scanf("%d%d",&a,&b);
    	for(int i=a;i<=b;i++){
    		if((i-a)%5==0&&i!=a) putchar('
    ');
    		printf("%5d",i); ans+=i;
    	}
    	putchar('
    ');
    	printf("Sum = %d",ans);
    	return 0;
    }
    

    L1-009

    思路:

    先利用最大公约数将这些分数通分;
    然后分子相加,再按要求输出即可;
    注意长整型开long long

    代码:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    LL gcd(LL a,LL b){return b==0?a:gcd(b,a%b);}
    LL lcm(LL a,LL b){return a/gcd(a,b)*b;} 
    const int maxn=105;
    int n;
    LL a[maxn],b[maxn];
    void solve(){
    	LL x=0,y=1;
    	for(int i=0;i<n;i++) y=lcm(y,b[i]);
    	for(int i=0;i<n;i++) x+=y/b[i]*a[i];
    	if(x<0) putchar('-'),x=-x;
    	if(x>y){
    		cout<<x/y; x=x%y;
    		if(x){
    			LL g=gcd(x,y); x/=g; y/=g;
    			cout<<' '<<x<<'/'<<y;
    		}	 
    	}else if(x==y) cout<<1;
    	else if(x==0) cout<<0;
    	else{
    		LL g=gcd(x,y); x/=g; y/=g;
    		cout<<x<<'/'<<y;
    	}
    }
    int main(){
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>a[i],getchar(),cin>>b[i];
    	solve();
    	return 0;
    }
    

    L1-010

    思路:

    排个序即可

    代码:

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    int a[3];
    int main(){
    	ios::sync_with_stdio(false); cin.tie(nullptr);
    	for(int i=0;i<3;i++) cin>>a[i];
    	sort(a,a+3);
    	for(int i=0;i<3;i++){
    		if(i) cout<<"->";
    		cout<<a[i];
    	}
    	return 0;
    }
    
  • 相关阅读:
    团队项目第二阶段个人进展——Day9
    团队项目第二阶段个人进展——Day8
    团队项目第二阶段个人进展——Day7
    团队项目第二阶段个人进展——Day6
    团队项目第二阶段个人进展——Day5
    团队项目第二阶段个人进展——Day4
    团队项目第二阶段个人进展——Day3
    团队项目第二阶段个人进展——Day2
    团队项目第二阶段个人进展——Day1
    人机交互设计——课后作业
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308730.html
Copyright © 2011-2022 走看看