求本题答案,不适用函数方法
给一个整数数组,使得它们的和等于一个给定的数 target,编写函数返回这两个值的下标,并且第一个下标小于第二个下标,注意这里的下标范围是【1,m】,不是以0开始。例:给出nums = ,target = 9,则返回 若不存在,则返回示例输入
2 7 11 15
9
示例输出
本帖最后由 风过无痕1989 于 2020-12-23 17:19 编辑
是某两个元素之和= target 吧?
#include <stdio.h>
int main()
{
int i, j, k, flag = 0, target, arr;
printf("输入目标值:");
scanf("%d", &target);
printf("输入数组元素:");
for (i = 0;i < 4;i++)
{
scanf("%d", &arr);
}
for (i = 0;i < 4;i++)
{
if (arr + arr == target)
{
j = i;
k = i + 1;
flag = 1;
}
else if (arr + arr == target)
{
j = i;
k = i + 2;
flag = 1;
}
}
if(flag == 1)
printf("%d, %d\n",j + 1,k + 1);
else
printf("%d,%d\n", 0, 0);
} 风过无痕1989 发表于 2020-12-23 16:56
是某两个元素之和= target 吧?
抱歉,需要用python做这个 注释在代码里了
def fun(nums, target):
length = len(nums)
for i in range(length):
for j in range(length):
# 逐个相加判断是否等于target
if nums + nums == target:
# 因为是两个的和,所以两个数不能是同一个,这里剔除同一个数的情况
if i != j:
# 返回从 1 开始,给索引值加 1
return (i+1, j+1)
else:
return (0, 0)
页:
[1]