- 方程整数解
方程: a^2 + b^2 + c^2 = 1000
这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。
你能算出另一组合适的解吗?
请填写该解中最小的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
#include <bits/stdc++.h>
using namespace std;
int main()
{
for (int i=1;i<=33;i++) {
for (int j=i;j<=33;j++) {
for (int k=j;k<=33;k++) {
if (i*i+j*j+k*k==1000) {
printf("%d %d %d\n",i,j,k);
}
}
}
}
return 0;
}
- 星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd
即4位年份2位月份2位日期。比如:
2015-02-19
=SUM(A1,1000)
- 奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
#include<bits/stdc++.h>
using namespace std;
void i2s(int num,string &s){
stringstream ss;
ss<<num;
ss>>s;
}
bool check(string s){
set<char>ss;
for(int i=0;i<s.length();i++){
ss.insert(s[i]);
}
return ss.size()==10&&s.size()==10;
}
int main(){
for(int i=1;i<100000;i++){
string s1,s2;
i2s(i*i,s1);
i2s(i*i*i,s2);
s1+=s2;
if(check(s1)){
cout<<i<<endl;
break;
}
}
}
#include <bits/stdc++.h>
using namespace std;
int b[10];
void solu(int x,int b[])
{
while (x) {
b[x%10]++;
x/=10;
}
}
int main()
{
for (int i=1,j;i<9999;i++) {
memset(b,0,sizeof(b));
solu(i*i,b);
solu(i*i*i,b);
for (j=0;j<=9;j++)
if (b[j]!=1) break;
if (j>9) {
printf("%d\n",i);
break;
}
}
return 0;
}
- 九数组分数
1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法?
下面的程序实现了该功能,请填写划线部分缺失的代码。
#include <stdio.h>
void test(int x[])
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
if(a*3==b) printf("%d / %d\n", a, b);
}
void f(int x[], int k)
{
int i,t;
if(k>=9){
test(x);
return;
}
for(i=k; i<9; i++){
{t=x[k]; x[k]=x[i]; x[i]=t;}
f(x,k+1);
_________________________________
}
}
int main()
{
int x[] = {1,2,3,4,5,6,7,8,9};
f(x,0);
return 0;
}
- 牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[13],cnt(0);
for(a[0]=0;a[0]<=4;a[0]++)
{
for(a[1]=0;a[1]<=4;a[1]++)
{
for(a[2]=0;a[2]<=4;a[2]++)
{
for(a[3]=0;a[3]<=4;a[3]++)
{
for(a[4]=0;a[4]<=4;a[4]++)
{
for(a[5]=0;a[5]<=4;a[5]++)
{
for(a[6]=0;a[6]<=4;a[6]++)
{
for(a[7]=0;a[7]<=4;a[7]++)
{
for(a[8]=0;a[8]<=4;a[8]++)
{
for(a[9]=0;a[9]<=4;a[9]++)
{
for(a[10]=0;a[10]<=4;a[10]++)
{
for(a[11]=0;a[11]<=4;a[11]++)
{
for(a[12]=0;a[12]<=4;a[12]++)
{
if(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]+a[11]+a[12]==13)
{
cnt += 1;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
cout << cnt << endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int ans=0;
void dfs(int type,int sum){
if(type>13||sum>13) return;
if(sum==13) ans++;
else {
for(int i=0;i<=4;i++){
dfs(type+1,sum+i);
}
}
}
int main(){
dfs(0,0);
cout<<ans<<endl;
}
- 手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数。不要填写任何多余的内容或说明性的文字。
#include<bits/stdc++.h>
using namespace std;
int main() {
vector<string>vc;
int sum=0;
string str="aaabbbbccccc";
do{
int i;
for(i=0;i<vc.size();i++){
if(vc[i].find(str)!=string::npos) break;
}
if(i!=vc.size()) continue;
string s1=str+str;
vc.push_back(s1);
reverse(s1.begin(),s1.end());
vc.push_back(s1);
sum++;
}while(next_permutation(str.begin(),str.end()));
cout<<sum<<endl;
return 0;
}