您的位置:首页 > 编程语言 > C语言/C++

c++程序设计——实验5

2015-05-16 23:25 351 查看
1.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个。

#include <iostream>
using namespace std;

int main()
{
int n = 0,cnt = 1;
while (1)
{
cout << "请输入天数:";
cin >> n;
for ( int i = 1 ; i < n ; i++)
{
cnt = 2*(cnt+1);
}
cout << "起初总共有:" << cnt << endl;
cout << "////////////// " << endl << endl;

cnt = 1;//如果要循环,一定要再次初始化
}
return 0;
}
2.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

/*//方法不好,仅供参考
#include <iostream>
using namespace std;

int main()
{
int a,i=2,j,flag=0;
while(1)
{
i = 2;
flag = 0;
cout << "请输入一个整数:";
cin >> a;
cout << " 分解结果为:";
cout << a << "=" ;
while ( i<=a )
{
for ( j=2;j<i;j++ )
{
if ( i%j == 0 )break;
}
if ( i == j)
{
while ( a%i == 0 )
{
if(flag==0)
{
cout << i;
}
else
cout << '*' << i;
flag = 1;
a = a/i;
}
}
i++;
}
cout << endl;
}

return 0;
}
*/
/*//用标志位的方法,仅供参考
#include <iostream>
using namespace std;
int main()
{
int n,i,j ;
bool flag = 0;
cout << "请输入一个正整数:";
cin >> n;
cout << "分解结果为:" << endl << n << "=";
for ( i = 2, j = n/2; i <= j; )//循环结束后如果n不能被c整除,i才加1;如果能整除,一直要除到不能整除为止
{
if ( n % i == 0 )
{
if ( !flag )
cout << i;
else
cout << '*' << i;
n /= i;
if ( !flag )
flag = 1;
}
else ++i;
}
if( n != 1 )
cout << n << endl;
else
cout << endl;
return 0;
}
*/

//用检测是否被除尽的方法:
#include <iostream>
using namespace std;
int main()
{
int n,i,j ;
cout << "请输入一个正整数:";
cin >> n;
cout << "分解结果为:" << endl << n << "=";
for ( i = 2, j = n; i <= j; )//循环结束后如果n不能被c整除,i才加1;如果能整除,一直要除到不能整除为止
{
if ( n % i == 0 )
{
n /= i;
if( n != 1 )//n还没有分解完成时,n不等1,作为标志决定输出格式
{
cout << i << '*';
}
else//n分解完成时,n等1,分解完成时不需要再输出乘号‘*’。
{
cout << i << endl;
}
}
else ++i;
}
return 0;
}
3. 编程实现十进制整数和八进制整数之间的转换(即将10进制数转换为8进制数,或将8进制数转换为10进制数)。

提示:在程序中计算xy,可采用教材p233的pow(x,y),以及文件包含命令#include <cmath>

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
int m = 0,n = 0;
int k = 0;
double i = 1;
while (1)
{
//************* 十进制转八进制 *************//
cout << "请输入一个正整数:";
cin >> m;
cout << m;
n = m % 8;
for (k=0,i=1.0 ; m/8 != 0; i++)
{
k = m/8%8 * pow( 10.0,i);
//k = pow(10.0,i) * m/8%8;
n += k;
m /= 8;
}
cout << "分解为:" << n << endl;

k = 0,n = 0;
//************* 八进制转十进制 *************//
cout << "请输入一个八进制数:";
cin >> m;
cout << m;
n = m % 10;
for (k=0,i=1.0 ; m/10 != 0; i++)
{
k = m/10%10 * pow( 8.0,i);
//k = pow(10.0,i) * m/8%8;
n += k;
m /= 10;
}
cout << "分解为:" << n << endl;

k = 0,n = 0;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息