栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

大一上 | 【C++】代码整理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大一上 | 【C++】代码整理

大一上 | 【C++】代码整理

仅记录一下大一上写下的“垃圾”代码

文章目录
  • 大一上 | 【C++】代码整理
  • 1. 二进制转十进制
  • 2. 十进制转二进制
  • 3. XYZ+YZZ=532的解
  • 4. 输出 2-20内的素数
  • 5. 求圆周率Π (小数点后六位)
  • 6. 公鸡母鸡小鸡问题
  • 7. 10进制转8进制
  • 8. 十进制转二进制
  • 9. 等差数列
  • 10. 最大公约数
  • 11. 斐波那契数列
  • 12. 打印圣诞树
  • 13. 求100内的素数
  • 14. 牛顿法迭代求根
  • 15. 计算圆的周长和面积 / 球的面积和体积
  • 16. 链表的基本操作

1. 二进制转十进制
#include
using namespace std;
int main()
{
	int dec = 0;
	char ch;
	cout << "binary = ";
	do
	{
		// 从输入流中读取一个字符赋给 ch
		cin.get(ch);
	} while (ch != '0' && ch != '1');
	do
	{
		int x = ch - '0';
		dec += x;
		cin.get(ch);
		if (ch == '0' || ch == '1')
		{
			dec *= 2;
		}
	} while (ch == '0' || ch == '1');
	cout << "decimal = " << dec;
	return 0;
}

 

2. 十进制转二进制
#include
using namespace std;
int main()
{
	int x, s[16] = { 0, };
	cout << "decimal = "; 
	cin >> x;
	for (int i = 15; i >= 0; i--)
	{
		s[i] = x % 2;
		x /= 2;
	}
	cout << "binary = ";
	for (int i = 0; i <= 15; i++)
	{
		cout << s[i];
		if ((i + 1) % 8 == 0)
		{
			cout << " ";
		}
	}
	return 0;
}

 

3. XYZ+YZZ=532的解
#include
using namespace std;
int main()
{
	int X, Y, Z;
	cout << "XYZ+YZZ=532的解为" << endl;
	for (X = 0; X != 9; X++)
		for (Y = 0; Y != 9; Y++)
			for (Z = 0; Z != 9; Z++)
				if (532 == (Y + X) * 100 + (Y + Z) * 10 + Z * 2)
				{
					cout << "X=" << X << endl;
					cout << "Y=" << Y << endl;
					cout << "Z=" << Z << endl;
				}
	return 0;
}

 

4. 输出 2-20内的素数
#include
#include
using namespace std;
int main()
{
	bool b;
	for (int x = 2; x <= 20; x++)
	{
		b = true;
		for (int j = 2; j <= sqrt(1.0 * x); j++)
		{
			if (x % j == 0)
			{
				b = false;
			}
		}
		if (b)
			cout << x << " ";
	}
	return 0;
}

 

5. 求圆周率Π (小数点后六位)

这里用到的公式是: π 4 ≈ 1 1 − 1 3 + 1 5 − 1 7 ⋯ frac{pi}{4}approx frac{1}{1}-frac{1}{3}+frac{1}{5}-frac{1}{7}cdots 4π​≈11​−31​+51​−71​⋯

#include
#include
using namespace std;
int main()
{
	double old_sum = 0.0;
	double sum = 1.0, s = 1.0;
	int n = 1;
	while (abs(sum-old_sum)>1e-6)
	{
		old_sum = sum;
		s = s * (-1);
		n = n + 2;
		sum += s / n;
	}
	double pi = 4 * sum;
	printf("%f", pi);
	return 0;
}

 

6. 公鸡母鸡小鸡问题

公鸡5元一只,母鸡3元一只,小鸡1/3元一只,给100元,则公鸡,母鸡,小鸡各买多少只?

#include
using namespace std;
int main()
{
	short int x, y, z;
	cout << "cockt" << "hent" << "chick" << endl;
	for (x = 0; x < 20; x++)
	{
		for (y = 0; y < 33; y++)
		{
			z = 100 - x - y;
			if (5.0 * x + 3.0 * y + z / 3.0 == 100)
				cout << x << 't' << y << 't' << z << endl;
		}
	}
	return 0;
}

 

7. 10进制转8进制
#include
using namespace std;
int main()
{
	long S;
	int n, m = 0, T[100];
	cout << "pleast importer your num" << endl;
	cout << "Decimal:";
	cin >> S;
	while (S != 0)
	{
		n = S % 8;
		S = S / 8;
		T[++m] = n;
	}
	int k = m;
	cout << "Octonary:";
	while (k >= 1)
	{
		cout << T[k];
		k--;
	}
	return 0;
}

 

8. 十进制转二进制
#include
using namespace std;
int main()
{
	long S;
	int n, m=0, T[100];
	cout << "Please input your number" << endl;
	cout << "Decimal:";
	cin >> S; 
	while (S != 0)
	{
		n = S % 2;
		S = S / 2;
		T[++m] = n;
	}
	cout << "Binary:";
	for (int k = m; k>=1; k--)
		cout << T[k];
	return 0;
}

 

9. 等差数列
#include
using namespace std;
int main()
{
	long an, S;
	int a1, d, n, m;
	cout << "首项:" << endl;
	cin >> a1;
	cout << "公差: " << endl;
	cin >> d;
	cout << "项数: " << endl;
	cin >> n;
	an = a1 + (n - 1) * d;
	cout << "所以an=" << an << endl;
	S = 0; m = 1;
	while (m <= n)
	{
		an = a1 + (m - 1) * d;
		S = S + an;
		m++;
	}
	cout << "前n项等于:" << S << endl;
	return 0;
}

 

10. 最大公约数
#include
using namespace std;
int main()
{
	int m, n;
	cout << "input 2 numbers(the first number is the bigger one)" << endl;
	cout << "?	"; cin >> m;
	cout << "?	"; cin >> n;
	int temp = n;
	cout << m << " and " << n << " maximal common divisor is ";
	while (temp)
	{
		temp = m % n;
		m = n;
		n = temp;
	}
	cout << m;
	return 0;
}

 

11. 斐波那契数列
#include
using namespace std;
int main()
{
	long long int a0 = 0, a1 = 1, a2;
	short int n;
	cout << "n = "; cin >> n;
	cout << a0 << 't' << a1 << 't';
	for (int i = 3; i <= n; i++)
	{
		a2 = a0 + a1;
		cout << a2 << 't';
		a0 = a1;
		a1 = a2;
		if (i % 10 == 0) cout << endl;
	}
	return 0;
}

 

12. 打印圣诞树
#include
#include
using namespace std;
int main()
{
	int n; char ch;
	cout << "How many lines ?t"; cin >> n;
	cout << "What character ?t"; cin >> ch;
	for (int i = 0; i < n; i++)
	{
		cout << setw((2 * n + 1) / 2 - i) << ch;
		for (int j = 1; j < (2 * i + 1); j++)
			cout << ch;
		cout << endl;
	}
	for (int k = 0; k < n / 2; k++)
		cout << setw(n - 1) << ch << ch << ch << endl;
	return 0;
}
// Sample Run
// How many lines ?        6
// What character ?        *
//      *
//     ***
//    *****
//   *******
//  *********
// ***********
//     ***
//     ***
//     ***

 

13. 求100内的素数
#include
#include
using namespace std;
int main()
{
	int m, k, i, n = 0;
	for (m = 2; m <= 100; m++)
	{
		k = int(sqrt(double(m)));
		i = 2;
		while (m % i && i <= k)
			i++;
		if (i > k)
		{
			cout << m << 't';
			n++;
			if (n % 5 == 0) cout << endl;
		}
	}
	return 0;
}

 

14. 牛顿法迭代求根
#include
#include
using namespace std;
double f1(double x);
double f2(double x);
int main()
{
	double x, x0, epson;
	cout << "input test root, x0 = ";
	cin >> x0;
	cout << "input precision, epson = ";
	cin >> epson;
	do
	{
		x = x0;
		x0 = x - f1(x) / f2(x);
	} while (fabs(x0 - x)>epson);
	cout << "the root is:" << x0;
	return 0;
}

double f1(double x)
{
	double y = pow(x, 3) + pow(x, 2) + 10 * x - 20;
	return y;
}
double f2(double x)
{
	double y = 3 * pow(x, 2) + 2 * x + 10;
	return y;
}

 

15. 计算圆的周长和面积 / 球的面积和体积
#include
using namespace std;

const double PI = 3.14159;
typedef double funType(double);
funType circlePerimeter, circleArea, ballArea, ballVolume;
double callFun(funType* qr, double r);

int main()
{
	double r;
	cout << "please input your number of radius: "; cin >> r;
	cout << endl;

	cout << "the circlePerimeter is " << callFun(circlePerimeter, r) << endl << endl;

	cout << "the circleArea is " << callFun(circleArea, r) << endl << endl;

	cout << "the ballArea is " << callFun(ballArea, r) << endl << endl;

	cout << "the ballVolume is " << callFun(ballVolume, r) << endl << endl;
	return 0;
}

double circlePerimeter(double r)
{
	return 2 * PI * r;
}

double circleArea(double r)
{
	return PI * r * r;
}

double ballArea(double r)
{
	return 4 * PI * r * r;
}

double ballVolume(double r)
{
	return 4.0 / 3.0 * PI * r * r * r;
}

double callFun(funType* qr, double r)
{
	return qr(r);
}

 

16. 链表的基本操作
  1. define.h
    #include
    using namespace std;
    struct node
    {
    	int data;
    	node* next;
    };
    
    typedef struct node* List;
    
    void construct(List& L, int a[], int n);
    
    void print(List L);
    
    void destroy(List& L);
    
  2. func.cpp
    #include"define.h"
    
    void print(List L)
    {
    	struct node* p = L;
    	while (p)
    	{
    		cout << p->data << endl;
    		p = p->next;
    	}
    }
    
    void construct(List &L, int a[], int n)
    {
    	if (L || n < 1)
    		return;
    
    	struct node* p;
    	struct node* rear = L;
    
    	p = (struct node*)malloc(sizeof(struct node));
    	p->data = a[0];		
    	p->next = NULL;
    	L = p;
    	rear = L;
    
    	for (int i = 1; i < n; i++)
    	{
    		p = (struct node*)malloc(sizeof(struct node));
    		p->data = a[i];
    		p->next = NULL;
    		rear->next = p;
    		rear = rear->next;
    	}
    	//return true;
    }
    
    void destroy(List &L)
    {
    	struct node* p = L;
    	while (L)
    	{
    		L = L->next;
    		free(p);
    		p = L;
    	}
    }
    
  3. main.cpp
    #include"func.cpp"
    
    int main()
    {
    	int a[10], i;
    	for (i = 0; i < 10; i++)
    	{
    		a[i] = i;
    	}
    	List L = NULL;;
    	construct(L, a, 10);
    	print(L);
    	cout << "---------------------------------------" << endl;
    	destroy(L);
    	print(L);
    	return 0;
    }
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号