[]データ構造とアルゴリズムの研究ノート - 「アルゴリズム・ノート、」簡単な数学の問題[-15]

例:デジタルブラックホール
ここに画像を挿入説明

#include <cstdio>
 #include <time.h>
 #include<stdlib.h>
#include<math.h>
#include <vector>
//#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

bool cmp(char a, char b)
{
	return a > b;
}

int main()
{
	int num[4];
	int n;

	int max, min;
	while (scanf("%d",&n)!=EOF)
	{
		int output = -1;
		while (output != 6174 && output != 0)
		{
			for (int i = 0; i < 4; i++)
			{
				num[i] = n % 10;
				n /= 10;
			}
			sort(num, num + 4);
			max = num[3] * 1000 + num[2] * 100 + num[1] * 10 + num[0];
			min = num[0] * 1000 + num[1] * 100 + num[2] * 10 + num[3];
			output = max - min;
			if (output == 0)
			{
				printf("%d-%d=0000\n", max, min);
			}
			else
			{
				printf("%d-%d=%d\n", max, min, output);
			}
			n = output;
		}
	}
}

ここでは、出力を書くことは、あなたが直接書き込みのprintf(「%04D」、n)をすることができ、良い十分ではありません。

守形数

説明タイトル
キープ形態は、下側部分自体の二乗に等しい整数です。
正方形25、下部25、25は、このような形状の数を維持するように、625。
コンパイルされたプログラムは、数Nは、形状を維持するか否かを判断します。
入力された
入力は、整数N、2 <= N <100を含みます 。
出力は、
データの各セットのためのテストデータの複数のセットであってもよいし、
出力「はい!」を表すNはキープ字の数です。
出力は「いいえ!」Nは守備の形ではない数を表します。
サンプル入力
6
11
サンプル出力
はい!
いいえ!

#include <cstdio>
 #include <time.h>
 #include<stdlib.h>
#include<math.h>
#include <vector>
//#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

bool cmp(char a, char b)
{
	return a > b;
}

int main()
{
	int n, s;
	int num[3];
	while (scanf("%d", &n) != EOF)
	{
		int i = 0;
		s = n * n;
		int len = 0;
		while(n)
		{
			num[i++] = n % 10;
			n /= 10;
			len++;
		}
		bool flag = true;
		for (int i = 0;i<len; i++)
		{
			if (num[i] != s % 10)
			{
				flag = false;
				break;
			}
			s /= 10;
		}
		if (flag == true)
			printf("Yes!\n");
		else
			printf("No!\n");
	}
	return 0;
}

アンチ序

説明タイトル
レッツNは数字であり、(例えば:1234逆の順序番号4321)と逆の順序で9回番号を発生し
、N個の値の検索
入力
プログラムない入力データ。
出力は、
対象桁の出力要件、複数のセットの結果は、キャリッジに結果の各セット離間間場合。

#include "stdafx.h"
#include <cstdio>

using namespace std;

int main()
{
	for (int i = 1000; i <= 2499; i++)
	{
		int a[4] = { 0 };
		int s = 0, temp = i;
		int k = 0;
		while (temp)
		{
			a[k++] = temp % 10;
			temp /= 10;
		}
		s = a[3] + 10 * a[2] + 100 * a[1] + 1000 * a[0];
		if (i * 9 == s)	printf("%d\n", i);
	}
	return 0;
}

反復立方根

タイトル説明
立方根近似反復式は、Yは(1 + N)= Y(N)2/3 + X /(3 Y(N)* Y(n))を、Y0 = X。探した後、N、所与のX反復の立方根の値。
入力し
たデータの入力複数のセットを。
各行、入力XN。
出力
反復立方根、n回後の倍精度、6つの小数点以下の桁数以降。
サンプル入力
4654684. 1
65461 23は、
サンプル出力
3,103,122.666667
40.302088

#include "stdafx.h"
#include <cstdio>
 #include <time.h>
 #include<stdlib.h>
#include<math.h>
#include <vector>
//#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
	int n;
	double x, y;
	while (scanf("%lf%d", &x, &n)!=EOF)
	{
		y = x;
		for (int i = 0; i < n; i++)
		{
			y = y * 2 / 3 + x / (3 * y*y);
		}
		printf("%lf\n", y);
	}
	return 0;
}
公開された43元の記事 ウォンの賞賛4 ビュー1208

おすすめ

転載: blog.csdn.net/weixin_42176221/article/details/101861897