暴力求解法
知识点:
要求设计者找出所有可能的方法,然后选择其中的一种方法,若该方法不可行则试探下一种可能的方法。
使用暴力法的几种情况
1.搜索所有的解空间
2.搜索所有的路径
3.直接计算
4.模拟和仿真
实例
代码如下:
#include <stdio.h>long long存储。
代码如下:
#include<stdio.h>
int main(){
int i,j,n;
int s[18];
while(scanf("%d",&n)==1&&n){
for(int i=0;i<n;i++)
scanf("%d",&s[i]);
int result[172],count=0;//用来存各连续子序列的值
for(int i=0;i<n;i++){//计算子序列的值
result[count++]=s[i];
for(int j=i+1;j<n;j++){
count ++;
result[count]=result[count-1]*s[i];}
count++;}
int mid=result[0];//找子序列中最大的与结果集比较;
for(i=1;i<count;i++)
mid=(mid>result[i]?mid:result[i];
if(mid>0)
printf("-1n");
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char s[20];
int i;
while(scanf("%d",&s[i])){
int length=strlen(s);
int ans=0;
for( i=length-1;i>=0;i-=2){
ans+=s[i]-'0';
}
for( i=length-2;i>=0;i-=2){
int num=(s[i]-'0')*2;
if(num>=10)
num-=9;
ans+=num;
}
if(ans%10==0){
printf("成功");
}
else printf("失败");
}
return 0;
}
代码如下:
#include<stdio.h>
#include<sring.h>
struct luoma {
char name;
int num;
}
struct luoma a[7]{{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000}};
void change(char b[k],int num){
int i,j,sum;
struct luoma c[10];
for(int i=0;i<num;i++){
for(j=0;j<7;j++){
if(b[i]==a[i].name){
c[i].name=b[i];//存放当前单个罗马数字及其值
c[i].n=a[j].n;
}
}
}
sum=c[i-1].n;
for(i=num-1;i>0;i--){
if(c[i].n<=c[i-1].n){
sum=sum+c[i-1].n;}
else
sum=sum-c[i-1].n;
}
printf("%d",sum);
}
int main(){
int N,k;
scanf("%d",&N);
char b[10][10];//只能存放十组罗马数字 一组罗马数字只能有10个字符;
int num[10],i,j,sum;
for(k=0;k<N;k++){
scanf("%s",b[k]);//输入几组罗马数字
num[k]=strlen(b[k]);}//一组罗马数字的长度
for(k=0;k<N;k++){
change(b[k],num[k]);
}
return 0;
}
本文发布于:2024-01-28 14:25:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064231088058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |