本篇内容主要讲解“怎么用C语言求素数大于1只能被1跟本身除的数 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言求素数大于1只能被1跟本身除的数 ”吧!
#if 1 #include <iostream> using namespace std; void move(int n,char A, char B, char C) { if(1==n) { cout<<A<<"-->"<<C<<endl; } else { move(n-1, A, C, B); cout<<A<<"-->"<<C<<endl; move(n-1, B, A, C); } } int main() { cout <<"please input the hanoi number:"; int num; cin>>num; char A='a'; char B='b'; char C='c'; move(num, A, B, C); return 0; } #else #include <iostream> using namespace std; int fun(int n) { if(n==1) return 1; if(n==0) return 0; return fun(n-1)+fun(n-2); } int CalAge(int n) { if(1==n) { return 10; } return CalAge(n-1)+2; } int main() { int i; int a[12]; a[0]=0; a[1]=1; cout<<a[0]<<endl; cout<<a[1]<<endl; for(i=2; i<=12;i++) { a[i]=a[i-1]+a[i-2]; cout<<a[i]<<endl; } cout<<"aaa"<<endl; cout<<fun(12)<<endl; cout<<" age 5"<<endl; cout<<CalAge(5)<<endl; return 0; } #endif
求素数 大于1 只能被1跟本身除的数
#include <iostream> #include <cmath> using namespace std; int fun(int temp) { for(int j=2; j<temp; j++) // for(int j=2; j<=sqrt(temp); j++) { if(temp%j == 0) { return 0; } } return 1; } int main() { int n; cout<<"please intput n n must > 1:"; cin>>n; int out=0; for(int i=2;i<=n;i++) { if(1==fun(i)) { out++; if(out>10) { out=1; cout<<endl; } cout<<i<<" "; } } cout<<endl; return 0; }
题目二:一只青蛙一次可以跳上一级台阶,也可以跳上2级台阶,求该青蛙跳上n级台阶的共有多少种跳法。
思路:当只有一级台阶的时候,青蛙的跳法也只有一种。当有两级台阶的时候,青蛙的跳法有两种(一是:一下跳两级台阶,二是:一级一级的跳)。当有n级台阶的时候,青蛙在第一次起跳的时候只跳了一级台阶,则还剩下n-1级台阶的跳法,如果在第一次起跳的时候跳了两级台阶,则还剩下n-2级台阶的跳法。整个题目正好是一个斐波拉契数列。公式如下:
int Frog(int n) { if(1==n || 2==n) { return n; } return Frog(n-1)+Frog(n-2); }
八皇后问题 回溯
#include <iostream> using namespace std; int ChessBoard[8][8]; /*棋盘*/ void InitsChessBorad() // 初始化 { for(int row = 0;row<8;row++) { for(int column = 0; column<8; column++) { ChessBoard[row][column] = 0; } } } void PrintChessBoard() //打印棋盘 { static int Num = 0; Num = Num + 1; cout<<"the "<<Num <<" is:"<<endl; for(int row = 0; row<8;row++) { for(int column = 0; column <8; column ++) { if(ChessBoard[row][column]) { cout<<"Q"; } else { cout<<"+"; } } cout<<endl; } cout<<endl; } bool Conflicts(int row, int column) // 判断冲突 { for(int i=1; i<8; i++) { if(row-i>=0 && ChessBoard[row-i][column]) { return true; } if(column-i>=0 && ChessBoard[row][column-i]) { return true; } if(column-i>=0 && row-i>=0 && ChessBoard[row-i][column-i]) { return true; } if(row-i>=0 && column+i<8 && ChessBoard[row-i][column+i]) { return true; } } return false; } /* place_queen ** 放置皇后 ** 第一行不需要检查,因为只有一个皇后。皇后放置的位置设置为true。 ** 如果某M行的所有列放置皇后都存在互相攻击,那么需要返回到M-1行中放置皇后的位置, ** 将M-1行的皇后位置设置为false,寻找这行的下一个可以放置皇后的位置,如果存在再检查第M行可以放置皇后的位置。 ** 如果不存在,则返回到第M-2行。 ** 如果8个皇后成功放置完毕,则打印棋盘. */ void QueenPlace(int row) // 棋盘放置 { for(int column = 0;column<8;column++) { ChessBoard[row][column] = 1; if(row ==0 || !Conflicts(row, column)) { if(row <7) { QueenPlace(row+1); } else { PrintChessBoard(); } } ChessBoard[row][column] = 0; } } int main() { InitsChessBorad(); QueenPlace(0); return 0; }
到此,相信大家对“怎么用C语言求素数大于1只能被1跟本身除的数 ”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。