#include
int main() {
int f1=1,f2=1;
int i;
for(i=1; i<20; i++) {
printf("%12d %12d",f1,f2);
if(i%2==0)
printf("\n");
f1=f1+f2;
f2=f2+f1;
}
return 0;
}
#include
using namespace std;
int main() {
int f1=0,f2=1,t,n=1;
cout<<"数列第1个:"<<f1<<endl;
cout<<"数列第2个:"<<f2<<endl;
for(n=3; n<=20; n++) {
t=f2;
f2=f1+f2;
f1=t;
cout<<"数列第"<<n<<"个:"<<f2<<endl;
}
cout<<endl;
return 0;
}
斐波那契数列的应用
#include
int main() {
int i,m;
int n;
printf("输入要求的项数:");
scanf("%d",&n);
float num1=2,num2=1,sum=0;
for(i=1; i<=n; i++) {
sum=sum+num1/num2;
m=num1;
num1=num1+num2;
num2=m;
}
printf("sum=%.2f",sum);
}
#include
#include
void swap(int x,int y,int z) {
for(x=1; x<=20; x++)
for(y=1; y<=33; y++) {
z=100-x-y;
if(x*5+y*3+z/3.0==100)
printf("x=%d y=%d z=%d\n",x,y,z);
}
}
int main() {
int x,y,z;
swap(x,y,z);
return 0;
}
#include
using namespace std;
int main() {
int i,j,k;
int N;//控制菱形的大小N;
cin>>N;
//先打上边的N行
for(i=1; i<=N; i++) {
for(j=1; j<=N-i; j++) {
cout<<" ";//打印的空格数
}
for(k=1; k<=2*i-1; k++)
cout<<"*";//星号数
cout<<endl;
}
//下边的N-1行
for(i=N-1; i>=0; i--) {
for(j=1; j<=N-i; j++) {
cout<<" ";//打印的空格数
}
for(k=1; k<=2*i-1; k++)
cout<<"*";//星号数
cout<<endl;
}
return 0;
}
方法一:
#include
int main() {
int a,n,i;
scanf("%d",&a);
for(n=1; n<=a/2+1; n++) {
//n是行
for(i=1; i<=a-n; i++)
printf(" ");
printf("*");
for(i=1; i<=2*n-3; i++) {
printf(" ");
}
if(n>1)
printf("*");
printf("\n");
}
for(n=a/2; n>0; n--) {
//n是个数
for(i=1; i<=a-n; i++) //这是个函数!a-n斜率为-1,a-n/2斜率为-2!
printf(" ");
printf("*");
for(i=1; i<=2*n-3; i++) {
printf(" ");
}
if(n>1)
printf("*");
printf("\n");
}
return 0;
}
方法二:
#include
int main() {
int i,j,k,line,m;
printf("请输入行数:");
scanf("%d",&line);
m=(line+1)/2;
for(i=1; i<=m; i++) {
for(k=0; k<m-i; k++) {
printf(" ");
}
printf("*");
if(i==1) {
printf("\n");
continue;
}
for(j=0; j<2*i-3; j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
for(i=m-1; i>0; i--) {
for(k=0; k<m-i; k++) {
printf(" ");
}
printf("*");
if(i==1) {
printf("\n");
continue;
}
for(j=0; j<2*i-3; j++) {
printf(" ");
}
printf("*");
printf("\n");
}
return 0;
}
方法三:
#include"stdio.h"
#include"math.h"
int main() {
int i,j,n;
scanf("%d",&n);
for(i=-n; i<=n; i++) {
for(j=-n; j<=n; j++)
if(abs(i)+abs(j)==n) printf("*");
else printf(" ");
printf("\n");
}
}
#include
int main() {
int a,i=2,j=0;
int b[100];
scanf("%d",&a);
while(i>=1) {
i=a/2;
if(i*2==a) {
b[j++]=0;
} else {
b[j++]=1;
}
a=i;
}
for(j-=1; j>=0; j--)
printf("%d",b[j]);
return 0;
}
#include
using namespace std;
void a1() {
int count =0;
int x,backNum,befNum,t,num;
cout<<"请输入一个三位数:"<<endl;
cin>>x;
t=x;
for(int i=1; i<=3; i++) {
backNum=x%10;
befNum=x/10;
x=befNum;
num=backNum*backNum*backNum;
count+=num;
}
cout<<"x="<<t<<endl;
cout<<"count="<<count<<endl;
if(count==t) {
cout<<"Yes"<<endl;
} else cout<<"No"<<endl;
}
int main() {
a1();
return 0;
}
#include
#include
#include
using namespace std;
string addStringString(string a, string b) {
string s = "";
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int i = 0, m=0, k = 0;
while(a[i] && b[i]) {
m = a[i] - '0' + b[i] - '0' + k;
k = m/10;
s += m%10 + '0';
i++;
}
if(i == a.size()) {
while(i != b.size()) {
m = b[i] - '0' + k;
k = m/10;
s += m%10 + '0';
i++;
}
if(k != 0) {
s += (k+'0');
}
} else if(i == b.size()) {
while(i != a.size()) {
m = a[i] - '0' + k;
k = m/10;
s += m%10 + '0';
i++;
}
if(k != 0) {
s += (k+'0');
}
}
reverse(s.begin(), s.end());
return s;
}
int main() {
string a;
string b;
cin >> a >> b;
cout << addStringString(a,b) << endl;
}
1)一维冒泡
#include
int main()
{
int a[10]={
1,2,3,4,5,6,7,8,10,9};
int i=0,j=0;
int t;
for(i=0;i<10;i++)
{
for(j=0;j<10-1;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排好的数列为:\n");
for(i=0;i<10;i++)
{
printf("%2d ",a[i]);
}
}
2)二维冒泡:
#include
int main() {
int a[3][3]= {
{
1,2,3},{
4,5,6},{
7,8,9}};
int i,j,k;
for(i=0; i<3; i++)
for(j=0; j<2; j++) {
if(a[i][j]>a[i][j+1]) {
k=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1]=k;
}
}
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf("%4d",a[i][j]);
}
#include
int main() {
int i,j,t,a[11]; //定义变量及数组为基本整型
printf("请输入10个数:\n");
for(i=1; i<11; i++)
scanf("%d",&a[i]); //从键盘中输入要排序的10个数字
for(i=1; i<10; i++)
for (j=i+1; j<11; j++)
if(a[i]>a[j]) {
//如果前一个数比后一个数大,则利用中间变量t实现两值互换
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("排序后的顺序是:\n");
for(i=1; i<11; i++)
printf("%5d", a[i]); //输出排序后的数组
printf("\n");
return 0;
}
#include
int main() {
int line;
int i;
scanf("%d",&line);
int n=(line+1)/2;
for(int i=n; i>0; i--) {
for(int k=0; k<n-i; k++) {
printf(" ");
}
printf("*");
if(i==1) {
printf("\n");
continue;
}
for(int j=0; j<2*i-3; j++) {
printf(" ");
}
printf("*");
printf("\n");
}
}
#include
#include
using namespace std;
void PriTriangle(int n) {
for(int i=1; i<=n; ++i) {
for(int j=1; j<=n-i; ++j) {
cout<<" ";
}
for(int k=1; k<=2*i-1; ++k) {
if(i==1 || i==n)
cout<<"*";
else {
if(k==1 || k==2*i-1)
cout<<"*";
else
cout<<" ";
}
}
cout<<"\n";
}
}
int main() {
cout<<"please input a number: ";
int n;
cin>>n;
PriTriangle(n);
}
#include
using namespace std;
int main() {
int n;
cin>>n;
int m=(n+1)/2;
for(int i=m; i>=1; i--) {
for(int k=1; k<=m-i; k++)
cout<<" ";
for(int j=1; j<=2*i-1; j++) {
if(j==1||j==2*i-1) {
cout<<"*";
} else {
cout<<" ";
}
}
cout<<endl;
}
for(int i=0; i<m; i++) {
for(int k=1; k<=m-1; k++) {
cout<<" ";
}
cout<<"*"<<endl;
}
return 0;
}
#include
#include
int main() {
char s[100];
int i,j,n;
printf("输入字符串:\n");
gets(s);
n=strlen(s);
for(i=0,j=n-1; i<j; i++,j--)
if(s[i]!=s[j])
break;
if(i>=j)
printf("是回文串\n");
else
printf("不是回文串\n");
return 0;
}
#include
#include
#include
using namespace std;
//bool cmp(int a,int b)
//{
// return a>b;
//}
int main()
{
int a[10]={
5,1,0,3,7,8,4,6,9,2};
sort(a,a+10);
// sort(a,a+10,cmp);
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
#include
float add(float x,float y) {
float z;
z=x+y;
return (z);
}
int main() {
float add(float x,float y);
float a,b,c;
scanf("%f%f",&a,&b);
c=add(a,b);
printf("sum is %f",c);
return 0;
}
#include
void swap(int *a,int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a,b;
scanf("%d%d",&a,&b);
swap(&a,&b);
printf("%d %d\n",a,b);
return 0;
}
#include
#include
int main() {
double a,b,c,disc,x1,x2,p,q;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
return 0;
}
#include
void swap(int *a,int *b) {
int temp=*a;
*a=*b;
*b=temp;
}
void b_sort(int a[]) {
int t;
for(int i=0; i<10; i++) {
for(int j=0; j<9; j++) {
if(a[j]>a[j+1]) {
// t=a[j];
// a[j]=a[j+1];
// a[j+1]=t;
swap(&a[j],&a[j+1]);
}
}
}
}
int main() {
int a[10]= {
1,2,3,4,-5,6,7,8,9,10};
b_sort(a);
for(int i=0; i<10; i++) {
printf("%4d",a[i]);
}
}
#include
int main()
{
int i,j;
int t;
int a[8];
printf("请输入7个数:");
for(i=1;i<8;i++)
scanf("%d",&a[i]);
for(i=0;i<8;i++)
for(j=1;j<7;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf(" ");
for(i=1;i<=7;i++)
printf("%5d",a[i]);
}
#include
#include
#define N 8
using namespace std;
int board[N+1],cnt;
bool judge(int l,int n) {
//判断在第l行第n个位置放是否合法
for(int i=1; i<=l-1; ++i)
if(board[i]==n||abs(board[i]-n)==abs(i-l))
return false;
return true;
}
void print() {
for(int i=1; i<=N; ++i) {
for(int j=1; j<board[i]; ++j)
cout<<'*';
cout<<'Q';
for(int j=board[i]+1; j<=N; ++j)
cout<<'*';
cout<<endl;
}
cout<<endl;
}
void dfs(int l) {
for(int i=1; i<=N; ++i) {
if(judge(l,i)) {
board[l]=i;
if(l==N) {
print();
++cnt;
} else
dfs(l+1);
}
}
}
int main() {
dfs(1);
cout<<cnt;//输出答案总数
return 0;
}
#include
int main()
{
void hanoi(int n,char one,char two,char three);
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to move %d diskes:\n",m);
hanoi(m,'A','B','C');
}
void hanoi(int n,char one,char two,char three)
{
void move(char x,char y);
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y)
{
printf("%c->%c\n",x,y);
}
#include
using namespace std;
main() {
int t,i,j,r[3][3]= {
{
1,2,3},{
7,8,9}}; //定义要交换的数组r,大小为3*3,实际只使用了2*3
for(i=0; i<2; i++) {
//r的大小是2*3,把2*3变为3*2
for(j=i; j<3; j++) {
t=r[i][j];
r[i][j]=r[j][i];
r[j][i]=t;//交换过程,相当于交换了下标
}
}
for(i=0; i<3; i++) {
//显示,因为2*3已经是3*2了
for(j=0; j<2; j++)
printf("%d ",r[i][j]);
printf("\n");
}
}