例:デジタルブラックホール
#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;
}