最大公约数和最小公倍数
#include<iostream>
using namespace std;
int main(){
int a,b,i,j,tmp;
cin>>a
>>b;
if(a<b){
tmp=a;
a=b;
b=tmp;
}
//此时有a>=b
//1.最大公约数i
for(i=b-1;i>0;i--){
if((a%i==0)&&(b%i==0))
{break;
}
}
//2.最小公倍数j
for(j=a;j<=a*b;j++){
if((j%a==0)&&(j%b==0))
{break;
}
}
//输出
cout<<i
<<'\n'
<<j;
return 0;
}
整数反转:
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n,i=-1,sum=0,tmp;
cin>>n;
tmp=n;
while(tmp){
tmp/=10;
i++;
}
while(n){
sum+=(n%10*pow(10,i));
i--;
n/=10;
}
cout<<sum;
return 0;
}
//数字反转
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
while(n){
cout<<n%10;
n/=10;
}
return 0;
}
//印符反转
#include<iostream>
using namespace std;
int main(){
int i,j;
const int n=15;//此处以15举例
int a[15][15]; //我使用的编译器不能使用int a[n][n],只能接受常数初始化。请直接带入后面这个。
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
if(j==i||j==0){
a[i][j]=1;
}else
{a[i][j]=a[i-1][j-1]+a[i-1][j];
}
cout<<a[i][j];
if(i==j){
cout<<'\n';
}else{
cout<<'\t';
}
}
}
}
附:运行结果
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
闰年判断
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if((n%400==0)||((n%4==0)&&(n%100!=0))){
cout<<"yes";
}else{
cout<<"no";
}
return 0;
}
统计单词
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int cnt=0,number=0;//约定:输入字符'#'表示短文结束
char a;
a=getchar();
while(a!='#'){
if(((a<'a'&&a>'z') ||(a<'A'&&a>'Z'))&&cnt==1){
number++;
cnt=0;
}
a=getchar();
}
cout<<number;
return 0;
}
前1000个素数
#include<iostream>
using namespace std;
int isprime(int i,int knownprime[],int cnt);
int main()
{
int i=3,cnt=1,loc=0;
const int number=1000;
int prime[number]={2};
cout<<"2"<<'\t';
for(i=3;cnt<number;i++){
loc=isprime(i,prime,cnt);
if(loc==0){
prime[cnt]=i;
printf("%d\t",i);
if((cnt+1)%5==0)
{cout<<'\n';
}
cnt++;
loc=0;
}
}
return 0;
}
int isprime(int i,int knownprime[],int cnt)
{int t=0,ret=0;
for(;t<cnt;t++){
if(i%knownprime[t]==0){
ret=1;break;}
}
return ret;
}
冒泡排序(指针)
#include<iostream>
using namespace std;
void swap2(int*a,int*b);
int main(){
int i,j,tmp;
const int size=3;//此处以15举例
int a[3];//我使用的编译器只支持常数定义数组大小。此处更改为int a[size].
for(i=0;i<size;i++){
cin>>a[i];
}
for(i=0;i<size;i++){
for(j=0;j<(size-i-1);j++){
if(a[j]>a[j+1]){
swap2(&a[j],&a[j+1]);
}
}
}
for(i=0;i<size;i++){
cout<<a[i]
<<' ';
}
return 0;
}
void swap2(int*a,int*b){
int tmp=0;
tmp=*a;
*a=*b;
*b=tmp;
}
冒泡排序(引用)
#include<iostream>
using namespace std;
void swap1(int&a,int&b);
int main(){
int i,j,tmp;
const int size=5;//此处以15举例
int a[5];//我使用的编译器只支持常数定义数组大小。此处更改为int a[size].
for(i=0;i<size;i++){
cin>>a[i];
}
for(i=0;i<size;i++){
for(j=0;j<(size-i-1);j++){
if(a[j]>a[j+1]){
swap1(a[j],a[j+1]);
}
}
}
for(i=0;i<size;i++){
cout<<a[i]
<<' ';
}
return 0;
}
void swap1(int&a,int&b){
int tmp;
tmp=a;
a=b;
b=tmp;
}
回文质数
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int n,isprime=1,i;
cin>>n;
//判断质数
for(i=2;i<n;i++){
if(n%i==0){
isprime=0;
break;
}
}
//判断回文
int a,b,t,s,cnt=-2,ishuiwen=1;
s=n;
do{
n/=10;
cnt++;
} while(n);
do{
a=n%10;
t=pow(10,cnt);
b=n%t;
cnt-=2;
if(a!=b){
ishuiwen=0;
break;
}
n=n-a-b*pow(10,cnt);
}while(n);
n=s;
//输出
if(isprime==1&&ishuiwen==1){
cout<<n
<<"是回文质数。";
}
else cout<<"不是回文质数。";
}
个人信息
#include<string>
#include<iostream>
using namespace std;
int main(){
string name;
int classes,number;
cin>>classes
>>name
>>number;
cout<<classes
<<'\n'
<<name
<<'\n'
<<number;
return 0;
}
类的基本功能(可能有误,还没有系统学习)
basicuses.h文件:
#ifndef BASICUSES_H
#define BASICUSES_H
class Basicuses
{
public:
Basicuses();
~Basicuses();
void push(stack ptrs,elementtype item);
elementype pop(stack ptrs);
struct snode;
protected:
char* stsck ptrs;
char elementtype item;
typedef int position;
int maxsize;
};
#endif
basicuses.cpp文件:
#include "Basicuses.h"
Basicuses::Basicuses()
{
}
Basicuses::~Basicuses()
{
}
void push(stsck ptrs,elementtype item){
if(ptrs->top==maxsize-1){
cout<<"堆栈满了";
return ;
}else{
ptrs->data[++(ptrs->top)]=item;
return ;
}
}
elementype pop(stack ptrs){
if(ptrs->top==-1){
cout<<"堆栈已空";
return NULL;
}else{
return(ptrs->data[(ptrs->top)--]);
}
}
struct snode{
elementtype data[maxsize];
int top;
};