CSP-J入门组

setw(2)
cout<<setw(2) //设置后面显示字符的宽度为2
cout<<fixed<<setprecision(6)<<变量名;//设置小数点后保留几位

数位五五

题链接

https://ac.nowcoder.com/acm/problem/22168

求出a到b之间有多少个数,数位之和为5的倍数

#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
bool number(int n){
	int nums,sum;
	nums = n;
	sum =0;
	while(nums!=0){
		sum += nums%10;
		nums = nums/10;
	}
	bool res = (sum%5==0)?true:false;
	return res;
}
int main(){
	int begin,end,res;
	res =0;
	cin>>begin>>end;
	for(int i=begin;i<=end;i++){
		if(number(i)){
			res++;
		}
	}
	cout<<res;
    return 0;
}

回文数

#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
bool number(int n){
	int nums,sum;
	nums = n;
	sum =0;
	while(nums!=0){
		sum *=10;
		sum += nums%10;
		nums = nums/10;
	}
	bool res = (sum==n)?true:false;
	return res;
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		if(number(i)){
			cout<<i<<endl;
		}
	}
    return 0;
}

字符统计

题目:https://ac.nowcoder.com/acm/problem/22202

#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
#include <cstdio>
using namespace std;
 
 
int main(){
	string n;
	getline(cin,n);

	int let=0;
	int dig=0;
	int oth=0;
	for(int i=0;i<n.size();i++){
		
		if(n[i]=='?') break;
		if((n[i]-65>=0 && n[i]-65<=25) ||(n[i]-97>=0 && n[i]-97<=25) ) let++;
		if(n[i]>='0' && n[i]<='9') dig++;	
	}

	oth=n.size()-1-let-dig+oth;
	cout<<"Letters="<<let<<endl
	<<"Digits="<<dig<<endl
	<<"Others="<<oth<<endl;
    return 0;
}

选择排序

#include <bits/stdc++.h> 
using namespace std;
int main(){
	int arr[] = {3,1,5,2,4};
	
	int len = sizeof(arr)/sizeof(arr[0]);
	for(int i =0;i<len;i++){
		int min = i;
		for(int j=i+1;j<len;j++){
			min = arr[j]<arr[min]?j:min;
		}
		cout<<"min:"<<min<<endl;
		int temp = arr[i];
		arr[i] = arr[min];
		arr[min] = temp;	
	}
	for(int i=0;i<len;i++){
		cout<<arr[i]<<" ";
	}
	return 0;
}

冒泡排序

#include <bits/stdc++.h>
using namespace std;

void swap(int arr[],int i,int j){ //交换数组两个数字下标 
	int temp = arr[i];arr[i] = arr[j];
	arr[j]=temp;
}

void printarr(int arr[],int len){//打印数组 
	for(int i=0;i<len;i++){
		cout<<arr[i]<<" ";
	}
}
void maxarr(int arr[],int len){//找到当前数组的最大值 
	for(int i=0;i<len-1;i++){
		if(arr[i]>arr[i+1]) swap(arr,i,i+1);//交换位置 
	}
}

int main(){
	int arr[] = {9,3,1,4,6,8,7,5,2};
	int len = sizeof(arr)/sizeof(arr[0]);
	for(int i=len;i>0;i--){//找到最后一位之后,便不考虑所以是
	// 从大到小 
		maxarr(arr,i);
	}
	printarr(arr,len);
	return 0;
}
posted @ 2021-04-28 21:32  剑客猫  阅读(268)  评论(0编辑  收藏  举报