![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码编写及算法编写心得
xtayaitak
c++爱好者!
展开
-
拉丁方阵
这道题是我没事干的时候找见的,就做了做,刚开始感觉有点难,联想到了数组,指针,以及数组的排列等等。可是做起来却没有那么难。/*拉丁方阵: 1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 思路:这道题看起一难其实一做便知道 这题没有什么难度。像做这种题可以用cout 语句输出前面三或四行代码看看有没有什么规律可寻,主要看一些常量的变体规律。 由图中可知原创 2010-09-12 16:11:00 · 734 阅读 · 0 评论 -
递归算法 sum(n)=1-1/2+1/3-1/4......(其中n>0)
<br />/*编写一个递归函数完成以下公式的运算*///sum(n)=1-1/2+1/3-1/4......(其中n>0)#include <iostream>using namespace std;//非递归算法float FUN(int n){ int m=1,temp=1; float total=0.0; while(m!=n+1) { total=total+1.0/m*temp; //注意要写成1.0否则返回值是整型 temp=temp*(原创 2010-10-10 02:05:00 · 5503 阅读 · 0 评论 -
判断是否为回文数
<br />/*判断是否为回文数 例如:18981思路:数字当成字符串数组,数组的下标访问每个元素判断是否为回文数。*/#include <iostream>using namespace std;int main(){ char ch[30]; cout<<"请输入一个数字"<<endl; cin>>ch; cout<<"输入的数字为"<<ch<<endl; //cout<<"第2项为"<<ch[1]<<endl; int len=str原创 2010-10-07 21:08:00 · 1065 阅读 · 0 评论 -
s=1+(1+2)+(1+2+3)+......+(1+2+3+..n)
/*编写程序 计算 s=1+(1+2)+(1+2+3)+......+(1+2+3+..n)的值。 第一项 1 第二项 1+2 第三项 1+2+3 思路:看规律 */#include using namespace std;int main(){ int a1=0,a2,n=0,N,sum=0; cout>N; while(n!=N) { n++; // n=1 n原创 2010-10-08 14:20:00 · 9939 阅读 · 0 评论 -
针对职工工资的发放,给出各种标额最少的张数的付款方案
<br />/*针对职工工资的发放,给出各种标额最少的张数的付款方案,票额包括:100元、50元、20元、10元、5元、2元、和1元。思路:1、设工资数为total 2、100元的张数为total/100 50元的张数为total%100/50 20元的张数为total%100%50/20 10元的张数为total%100%50%20/10 5元 total%100%50%20/5 2元 total%100%原创 2010-10-08 23:44:00 · 1086 阅读 · 0 评论 -
输入两个数,求最大公约数
<br />//main.cpp/************************************************************************//* 输入两个数,求最大公约数 思路:手工用笔在纸上求两个数的最大公约数,理清思路,写出循环。 /**********************************************************************原创 2010-10-13 01:22:00 · 996 阅读 · 0 评论 -
写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数
<br />//写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。/*思路:*/#include <iostream>#include <string>using namespace std;int Find(string str_long,string str_short){ if(str_long.length()<str_short.length()) { cout<<"error"<<endl;return 0; } string tem原创 2010-10-13 00:49:00 · 2309 阅读 · 0 评论 -
自己的strlen
<br />/*编写一个函数Strlen(char *s)求s字符串的长度并进行测试。*/#include <iostream>using namespace std;int Strlen(char *str){ int len=0; while(*(str+len)!='/0') { len++; } return len;}int main(){ cout<<"zhang的字符个数为"<<Strlen("zhang")<<endl;}原创 2010-10-13 01:55:00 · 357 阅读 · 0 评论 -
简单分数类
<br />/*定义一个分数类,分子分母各为私有成员,规则:默认构造函数分数为1 分子分母要以最简形式存放。如3/9=1/3 定义成员Add,Sub,Mul和Div计算结果仍以最简形式存放 以浮点形式打印分数思路:问题1.如何对分数约分。分子分母各除以他们的最大公约数 问题2.加减乘除运算 加:通分后加结果再约分 减:通分后减结果再约分 乘:分子乘以分子,分母乘以分母,然后约分。 除:除就等于乘以一原创 2010-10-21 08:04:00 · 447 阅读 · 0 评论 -
螺旋阵列
<br />/* http://www.cppleyuan.com/?fromuid=525 C++奋斗乐园|C++论坛|算法论坛|ACM/ICPC论坛 82 81 80 79 78 77 76 75 74 73 83 50 49 48 47 46 45 44 43 72 84 51 26原创 2010-10-24 22:14:00 · 889 阅读 · 0 评论 -
f(x,y)=ax*x+by+c 的抽象
<br />/*通过重载函数调用运算符实现下列数学函数的抽象 f(x,y)=ax*x+by+c */#include <iostream>using namespace std;class Fun{public: int operator()(int x,int y)const;};int Fun::operator()(int x,int y)const{ int a,b,c; cin>>a>>b>>c; return a*x*x+b*原创 2010-10-25 22:29:00 · 732 阅读 · 0 评论 -
不使用中间变量交换两个数
<br />/*不交换中间变量交换两个数*/#include <iostream>using namespace std;void Fun(int&x,int&y){ x=x+y; y=x-y; x=x-y;}int main(){ int a=3,b=4; cout<<"交换前"<<endl<<"a="<<a<<"/t"<<"b="<<b<<endl; Fun(a,b); cout<<"交换后"<<endl<<"a="<<a<<"/t"<<"b=原创 2010-10-10 01:41:00 · 397 阅读 · 0 评论 -
这几天要做一做的题
<br />http://topic.csdn.net/u/20101002/08/1106d03a-dfef-499d-aad9-5d85af21fecb.html?72693原创 2010-10-08 11:57:00 · 453 阅读 · 0 评论 -
环形矩阵
<br />前几天看到一个题目,今天拿来做做,挺经典,拿出来与大家分享。大牛们看了别见/* 文件名:矩阵问题 创建:xtayaitak 于2010.9.8 功能:显示如下矩阵。 TTTTTTTTTTTTTTTTJJJJJJJJJJJJJTTJ11111111111JTTJ12222222221JTTJ12333333321JTTJ12344444321JTTJ12345554321JTTJ12345654321JTTJ123原创 2010-09-12 16:20:00 · 1017 阅读 · 0 评论 -
9月14日学习总结
<br />火柴游戏问题。这个问题,我看了好久,没有看出来个所以然,郁闷!<br />/* 9. 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。输的人要按赢者手中的火柴 数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。现知道玩过四次后, 每人恰好输过一次, 而且每人手中都正好有16根火柴。问此四人做游戏前手中各有 多少根火柴? 编程解决此问题。 分析: 第一次假设a输了 第二次假设b输了 第三次假设c输了原创 2010-09-15 01:06:00 · 475 阅读 · 0 评论 -
蛇形填数
<br />/* 题目:显示如下矩阵 0 1 2 3 40 1 3 4 10 111 2 5 9 12 192 6 8 13 18 203 7 14 17 21 244 15 16 22 23 25思路:矩阵题你用大脑知道他是什么样的规律,也就是用你自己的大脑能把阵矩画来,但就是用代码写不出来。这个蛇形,第一眼看去, 不知道该怎么安排循的方向和条件。但是你只能仔细模拟大脑原创 2010-09-26 00:21:00 · 359 阅读 · 0 评论 -
自然数逆序输出
/*输入一个自然数,将该自然数的每一位数字反序输出,例如:输入 12345,输出54321*/#include using namespace std;/*int main(){ cout>ch; cout=0;i--) { cout>num; do { digit=num%10; num=num/10; cout0); return 0;}原创 2010-10-05 01:52:00 · 2306 阅读 · 5 评论 -
菱形星号
<br /><br />难点:怎么把行标i 和每行显示的数据的个数联系起来,怎么找出i和j的关系?*/#include <iostream>using namespace std;int main(){ int i,j; for(i=1;i<=4;i++) { for(j=(4-i)*2;j>0;j--) cout<<" "; for(j=1;j<=2*i-1;j++) cout<<"*"<<" "; cout<<endl;原创 2010-10-06 02:20:00 · 615 阅读 · 0 评论 -
另一种菱形星号
<br />/*输出以下图案 * cout<<" ";6次 cout<<'* ' 一次 * * cout<<" ";5次 cout<<'* '两次 * * * cout<<" ";4次 cout<<'* '三次 * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * *原创 2010-10-06 02:28:00 · 280 阅读 · 0 评论 -
直角三角形的三条边满足勾股定理,找出三边长度都小于50的三角形
<br />/*直角三角形三条边满足勾股定律。编写程序,找出三角边长度小于50的所有三角形。*//*思路:设三边为a b c 玫举所有小于50的三角形。先测试能不能三角形。然后再测试勾股定律。*//*注意:直角三角形三边长3 4 5和4 3 5是同一个三角形。*/#include <iostream>using namespace std;int main(){ int a,b,c,i=0; int count=0; for(a=1;a<50;a++)原创 2010-10-06 01:54:00 · 2428 阅读 · 0 评论 -
10000以内的同构数
/*找出10000以内的同构数同构数 376*376=141376思路:1、输入一个数num 先判断是几位数。记住数位length。 2、然后算它(num)的平方, square。 3、取square的后length位的数值temp 4、temp与num相等,则是同构数。*/#include #include using namespace std;int wei(int n)//判断是几位数{ if(n>0&&n=10&&n=100&&原创 2010-10-08 00:46:00 · 7547 阅读 · 0 评论 -
水仙花数
<br />/*“水仙花数”是指一个三位数,其各位数的立方和等于该。例如:153=1的立方+5的立方+3的立方编写程序:输出所有“水仙花数“思路:1、取一个三位数,取百位,十位,个位。 2、分别算出他们的立方和。 4、比较*/#include <iostream>#include <math.h>using namespace std;int main(){ int num; int bw,sw,gw; cout<<"水仙花数为"<<原创 2010-10-08 00:56:00 · 489 阅读 · 0 评论 -
用随机数函数产生1000个1-6之间的随机数。用这1000个随机数分别代表骰子6个面的面值
<br />/*编写程序,用随机数函数产生1000个1-6之间的随机数。用这1000个随机数分别代表骰子6个面的面值,要求:输出6个面的面值各自出现的次数。思路:*/#include <iostream>#include <cstdlib>using namespace std;int main(){ int num; int a[6]={0,0,0,0,0,0}; for(int i=0;i<=1000;i++) { num=rand()%7+1;原创 2010-10-08 14:38:00 · 2438 阅读 · 0 评论 -
数组是否越界的一个类
<br />/*c++在运行期间不会自动检查数组是否越界,设计一个类检查数组是否越界。 */#include <iostream>#include <string>using namespace std;class check{public: check(char*s) { str=new char[strlen(s)+1]; strcpy(str,s); len=strlen(s); } char operator[](int n) {原创 2010-10-25 22:57:00 · 646 阅读 · 0 评论