课堂笔记
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
#include <stdio.h>
//正整数的最大公约数问题:
//从大到小:m,n, m>n,n,n-1,,,,,1,找到的第一个是所求的公约数
int main()
{
int m,n;
int t,i;
cin>>m>>n;
//保证m>=n
if(m<n)
{
t=m; m=n; n=t;
}
for(i=n;i>0;i--)
{
if(n%i==0 && m%i==0)
{
t=i;
break;
}
cout<<i<<"\t";
}
cout<<endl<<"最大公约数="<<t<<endl;
return 0;
}
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
//从小到大:m,n, m>n 1,2,3...n
int main()
{
int m,n;
int t,i;
cin>>m>>n;
//保证m>=n
if(m<n)
{
t=m; m=n; n=t;
}
for(i=1;i<n+1;i++)
{
if(n%i==0 && m%i==0)
{
t=i;
}
cout<<i<<"\t";
}
cout<<endl<<"最大公约数="<<t<<endl;
return 0;
}
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
//辗转相减法:辗转相减法(求最大公约数),即尼考曼彻斯法,
//其特色是做一系列减法,从而求得最大公约数。例如 :
//两个自然数35和14,用大数减去小数,(35,14)->(21,14)->(7,14),
//此时,7小于14,要做一次交换,把14作为被减数,即(14,7)->(7,7),
//再做一次相减,结果为0,这样也就求出了最大公约数7
//32 48 m=48 n=32
//48-32=16 m=m-n =16 ,m<->n
//32,16 32-16=16 16 16 16-16=0 16
//
//
int main()
{
int m,n,t;
cin>>m>>n;
do
{
if(m<n) //保证m>n
{
t=m; m=n; n=t;
}
cout<<"m="<<m<<"\tn="<<n<<endl;
m=m-n; //大的减小的
}while(m!=0);
cout<<"最大公约数="<<n<<endl;
return 0;
}
学习总结
我知道自己挺笨的,但是我没有选择放弃,就算我多笨都好,照着别人的代码写也好,我也会努力坚持下去。今天完成周末作业的时候,get到通过在中途输出数据(也就是调试,不过我不会dev的调试)发现数据和程序的错误。如果我有错,希望上天惩罚我,而不是像今天完成输入星期几的那个作业和上个星期的fibonacci数列作业,我反反复复检查了五六个小时我近乎完美的代码(上手+用眼睛和笔一行一行看和算),总以为是代码中出了问题,最后就随便换代码的位置或者改一个小数字就对了……我崩溃的不是我检查了这么久,而是检查那么久却是一个很不起眼又发现不了的小问题导致的出错〒▽〒