洛谷 P1008三连击 C语言
先写自己最先开始的思路
算出一共有多少个三位数,将所有的三位数都装进一个数组里,然后一个一个遍历,如果这个三位数的两倍、三倍都在这个数组里,且三个三位数没有相同的数字,就输出。
第一个函数长这样:
int Jadge1(int number,int a[N])
//判断 number 是否在数组 a 里面
{int n=0;for(int i=0;i<N;i++){if(number==a[i]){n=1;break;}}if(n==1)return 1;elsereturn 0;
}
第二个函数长这样:
int Jadge2(int a,int b,int c)
//判断 a,b,c 三个数是否有相同的数字
{int i1,i2,i3,j1,j2,j3,k1,k2,k3;i1=a/100;i2=b/100;i3=c/100;j1=(a%100)/10;j2=(b%100)/10;j3=(c%100)/10;k1=a%10;k2=b%10;k3=c%10;int num2[9]={i1,i2,i3,j1,j2,j3,k1,k2,k3};//两个 for 循环遍历数组的同时与其他元素进行比较,查找是否有相同元素int count=0;for(int i=0;i<9;i++){for(int j=i+1;j<9;j++){if(num2[i]==num2[j])count++;//查找到相同的计数器加 1}}if(count==0)//没有找到相同的 count=0return 1;elsereturn 0;
}
主函数长这样:
int main()
{//1~9的九个数,随机组成三个三位数,要求形成1:2:3的比例//随机能组成多少数 123 124 125 126 127 128 129 132 134 135 136 137 138 139 142 ...//共有 9*8*7=504 个int num[N];int i,j,k;int n=0;for(i=1;i<10;i++){for(j=1;j<10;j++){if(i!=j){for(k=1;k<10;k++){if(i!=k && j!=k){num[n]=i*100+j*10+k;//所有数装进数组n++;}}}}}//最大的数是987,它的1/3是329,只要遍历到第125个数。for(int m=0;m<125;m++){int m1,m2;m1=2*num[m];m2=3*num[m];int n1=Jadge1(m1,num);//判断两倍是否在数组里int n2=Jadge1(m2,num);//判断三倍是否在数组里int n3=Jadge2(num[m],m1,m2);//判断三个三位数是否有相同数if(n1&&n2&&n3)//如果三个条件都满足,则输出{printf("%d %d %d",num[m],m1,m2);printf("\n");}}
}
所以整个函数长这样:
#include<stdio.h>
#define N 504int Jadge1(int number,int a[N])
//判断 number 是否在数组 a 里面
{int n=0;for(int i=0;i<N;i++){if(number==a[i]){n=1;break;}}if(n==1)return 1;elsereturn 0;
}int Jadge2(int a,int b,int c)
//判断 a,b,c 三个数是否有相同的数字
{int i1,i2,i3,j1,j2,j3,k1,k2,k3;i1=a/100;i2=b/100;i3=c/100;j1=(a%100)/10;j2=(b%100)/10;j3=(c%100)/10;k1=a%10;k2=b%10;k3=c%10;int num2[9]={i1,i2,i3,j1,j2,j3,k1,k2,k3};int count=0;for(int i=0;i<9;i++){for(int j=i+1;j<9;j++){if(num2[i]==num2[j])count++;}}if(count==0)return 1;elsereturn 0;
}int main()
{//1~9的九个数,随机组成三个三位数,要求形成1:2:3的比例//随机能组成多少数 123 124 125 126 127 128 129 132 134 135 136 137 138 139 142 ...//共有 9*8*7=504 个int num[N];int i,j,k;int n=0;for(i=1;i<10;i++){for(j=1;j<10;j++){if(i!=j){for(k=1;k<10;k++){if(i!=k && j!=k){num[n]=i*100+j*10+k;//所有数装进数组n++;}}}}}//最大的数是987,它的1/3是329,只要遍历到第125个数。for(int m=0;m<125;m++){int m1,m2;m1=2*num[m];m2=3*num[m];int n1=Jadge1(m1,num);int n2=Jadge1(m2,num);int n3=Jadge2(num[m],m1,m2);if(n1&&n2&&n3)//判断输出的条件{printf("%d %d %d",num[m],m1,m2);printf("\n");}}
}
后来看了大神解题
直接定义一个数 a,从123遍历到333,并求出它的两倍(b)和三倍(c)。判断 a,b,c 三个三位数没有共同数字的方法,属实让我大吃一惊。
#include<stdio.h>
int main()
{int a,b,c;// a 从123到333for(int a=123;a<333;a++){b=2*a;c=3*a;if(a/100+b/100+c/100+(a%100)/10+(b%100)/10+(c%100)/10+a%10+b%10+c%10==45 && (a/100)*(b/100)*(c/100)*((a%100)/10)*((b%100)/10)*((c%100)/10)*(a%10)*(b%10)*(c%10)==362880)//45是1~9相加的值,362880是1~9相乘的值{printf("%d %d %d\n",a,b,c);}}
}
大佬赐予我力量!
洛谷 P1008三连击 C语言相关推荐
- Java 洛谷 P1008 三连击
题目链接:https://www.luogu.com.cn/problem/P1008 代码实例: public class Main{public static void main(String[] ...
- 洛谷 P1008 三连击 题解
[P1009 普及组] 三连击 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目描述 将 1, 2,...... , 9 共 9 个数分 ...
- 洛谷 P1008 三连击 Label:水
题目描述 将1,2,-,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数. 输入输出格式 输入格式: 木有输入 输出格式: 若干行,每行3个 ...
- 洛谷P1008 三连击
题目 #include<stdio.h> int main(void) {int a[9]={0,0,0,0,0,0,0,0,0};int num1=0,num2=0,num3=0;for ...
- 洛谷 P1008 三连击
/* 判断没有重复的方法就是 统计1+2+3+4+5+6+7+8+9=45, 1*2*3*4*5*6*7*8*9=362800 */#include <stdio.h>void resul ...
- 洛谷 P1008 [NOIP1998 普及组] 三连击
[题目链接] 洛谷 P1008 [NOIP1998 普及组] 三连击 [题目考点] 1. 枚举 2. 数字拆分 [解题思路] 三个由1~9组成的3位数字,满足1:2:3.那么第一个数字最小为100,最 ...
- 洛谷刷题C语言:潇湘の雨、分糖果、Addition、Ljeto、TRI
记录洛谷刷题C语言QAQ 「PMOI-0」潇湘の雨 题目背景 (原 LZOI-1,改名已经 PMOI 成员同意) lhm-01 题目描述 言琢დ 在一个 2n×2n2n \times 2n2n×2n ...
- 洛谷刷题C语言:Bold、饱食、公平の意、DOM、
记录洛谷刷题C语言qaq [COCI2020-2021#6] Bold 题目描述 Paula 给 Daniel 写了一封信,她需要加粗文本的字体,以便视力恶化的 Daniel 阅读. 信可以用 . 和 ...
- 洛谷刷题C语言:陶瓷项链、Cow Gymnastics B、Where Am I? B、Hello, 2020!、SIR 模型
记录洛谷刷题C语言 一.[NOI2000] 瓷片项链 题目描述 原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷 ...
最新文章
- 网易是世界最好的公司
- 中秋祝福网页制作_10大中秋H5模板分享,助力吸粉10000+
- c语言#include后的尖括号和双引号有什么区别?
- Windows保护模式学习笔记(一)—— 段寄存器GDT表
- 昆仑mcp文件是什么版本_昆仑健康保2.0升级版怎么样?有哪些优缺点?
- 用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)
- hibernate07--关联映射
- id选择器、标签选择器、类选择器、交集选择器、并集选择器
- 来自东软的 OpenStack 负载均衡即服务开源项目
- php用于防SQL注入的几个函数
- 2020mysql安装教程_2020MySQL安装图文教程
- Handler原理分析
- 飞舞的蝴蝶(GraphicsView框架)
- 可靠的Windows版Redis
- 纵坐标是横的还是竖的_600*1200墙砖横贴好,还是竖贴好?讲讲这两种贴法的问题...
- ios开发证书reset原理分析以及解决方案
- MySQL的主从复制
- python中bytearray函数_Python bytearray() 函数
- Deep drug-target binding affinity prediction with multiple attention blocks论文解读(二)2021SC@SDUSC
- Unity实现可调子屏幕(类小地图)效果